mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-25 19:30:17 +08:00
Update pull-requests permission from read to write and add allowed_non_write_users config Add security warning comment about fine-grained token control
77 lines
3.3 KiB
YAML
77 lines
3.3 KiB
YAML
name: Claude Translator
|
||
concurrency:
|
||
group: translator-${{ github.event.comment.id || github.event.issue.number }}
|
||
cancel-in-progress: false
|
||
|
||
on:
|
||
issues:
|
||
types: [opened]
|
||
issue_comment:
|
||
types: [created, edited]
|
||
|
||
jobs:
|
||
translate:
|
||
if: |
|
||
(github.event_name == 'issues') ||
|
||
(github.event_name == 'issue_comment' && github.event.sender.type != 'Bot') &&
|
||
((github.event_name == 'issue_comment' && github.event.action == 'created' && !contains(github.event.comment.body, 'This issue was translated by Claude')) ||
|
||
(github.event_name == 'issue_comment' && github.event.action == 'edited'))
|
||
runs-on: ubuntu-latest
|
||
permissions:
|
||
contents: read
|
||
issues: write # 编辑issues/comments
|
||
pull-requests: write
|
||
id-token: write
|
||
|
||
steps:
|
||
- name: Checkout repository
|
||
uses: actions/checkout@v4
|
||
with:
|
||
fetch-depth: 1
|
||
|
||
- name: Run Claude for translation
|
||
uses: anthropics/claude-code-action@main
|
||
id: claude
|
||
with:
|
||
# Warning: Permissions should have been controlled by workflow permission.
|
||
# Now `contents: read` is safe for files, but we could make a fine-grained token to control it.
|
||
# See: https://github.com/anthropics/claude-code-action/blob/main/docs/security.md
|
||
github_token: ${{ secrets.TOKEN_GITHUB_WRITE }}
|
||
allowed_non_write_users: '*'
|
||
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
||
claude_args: '--allowed-tools Bash(gh issue:*),Bash(gh api:repos/*/issues:*)'
|
||
prompt: |
|
||
你是一个多语言翻译助手。请完成以下任务:
|
||
|
||
1. 获取当前issue/comment的完整信息
|
||
2. 智能检测内容。
|
||
1. 如果是已经遵循格式要求翻译过的issue/comment,检查翻译内容和原始内容是否匹配。若不匹配,则重新翻译一次令其匹配,并遵循格式要求;若匹配,则跳过任务。
|
||
2. 如果是未翻译过的issue/comment,检查其内容语言。若不是英文,则翻译成英文;若已经是英文,则跳过任务。
|
||
3. 格式要求:
|
||
- 标题:英文翻译(如果非英文)
|
||
- 内容格式:
|
||
> [!NOTE]
|
||
> This issue/comment was translated by Claude.
|
||
|
||
[英文翻译内容]
|
||
|
||
---
|
||
<details>
|
||
<summary>Original Content</summary>
|
||
[原始内容]
|
||
</details>
|
||
|
||
4. 使用gh工具更新:
|
||
- 根据环境信息中的Event类型选择正确的命令:
|
||
- 如果Event是'issues':gh issue edit [ISSUE_NUMBER] --title "[英文标题]" --body "[翻译内容 + 原始内容]"
|
||
- 如果Event是'issue_comment':gh api -X PATCH /repos/[REPO]/issues/comments/[COMMENT_ID] -f body="[翻译内容 + 原始内容]"
|
||
|
||
环境信息:
|
||
- Event: ${{ github.event_name }}
|
||
- Issue Number: ${{ github.event.issue.number }}
|
||
- Repository: ${{ github.repository }}
|
||
- Comment ID: ${{ github.event.comment.id || 'N/A' }} (only available for comment events)
|
||
|
||
使用以下命令获取完整信息:
|
||
gh issue view ${{ github.event.issue.number }} --json title,body,comments
|