4 4
5# Claude Code GitHub Actions5# Claude Code GitHub Actions
6 6
7> 了解如何將 Claude Code 整合到您的開發工作流程中,使用 Claude Code GitHub Actions7> 在 GitHub Actions 工作流程中執行 Claude Code,以回應 @claude 提及、自動化任務,並將議題轉換為 pull request
8 8
9Claude Code GitHub Actions 為您的 GitHub 工作流程帶來 AI 驅動的自動化。只需在任何 PR 或議題中提及 `@claude`,Claude 就可以分析您的程式碼、建立 pull request、實現功能和修復錯誤 - 同時遵循您專案的標準。如需在每個 PR 上自動發佈評論而無需觸發,請參閱 [GitHub Code Review](/zh-TW/code-review)。9[Claude Code GitHub Actions](https://github.com/anthropics/claude-code-action) 是一個 GitHub Action,在您的儲存庫工作流程中執行 Claude Code。在 pull request 或議題評論中提及 `@claude`,讓 Claude 分析程式碼、實現變更並推送提交。您也可以給 Claude Code GitHub Action 一個提示,在任何 GitHub 事件上自動執行。使用它將議題轉換為 pull request、從評論修復錯誤,或自動化重複性任務。
10 10
11<Note>11有多個產品共享 Claude Code 名稱。本頁涵蓋 `claude-code-action` 工作流程整合,您可以使用儲存庫中的工作流程檔案進行設定。如需相關產品,請參閱:
12 Claude Code GitHub Actions 建立在 [Claude Agent SDK](/zh-TW/agent-sdk/overview) 之上,該 SDK 可實現 Claude Code 與您的應用程式的程式化整合。您可以使用 SDK 來建立超越 GitHub Actions 的自訂自動化工作流程。
13</Note>
14 12
15<h2 id="why-use-claude-code-github-actions">13* [Code Review](/docs/zh-TW/code-review):在每個 pull request 上自動審查,無需編寫工作流程
16 為什麼使用 Claude Code GitHub Actions?14* [Claude Code on the web](/docs/zh-TW/claude-code-on-the-web):從您的瀏覽器或手機進行 Claude Code 工作階段
15* [Claude Agent SDK](/docs/zh-TW/agent-sdk/overview):GitHub Actions 外的自訂自動化。Claude Code GitHub Action 建立在 SDK 之上
16* [GitHub Enterprise Server](/docs/zh-TW/github-enterprise-server):具有自託管 GitHub 的 Claude Code
17
18<h2 id="setup">
19 設定
17</h2>20</h2>
18 21
19* **即時 PR 建立**:描述您需要的內容,Claude 會建立包含所有必要變更的完整 PR22您可以透過以下兩種方式之一設定 Claude Code GitHub Action:
20* **自動化程式碼實現**:使用單一命令將議題轉換為可運作的程式碼
21* **遵循您的標準**:Claude 尊重您的 `CLAUDE.md` 指南和現有程式碼模式
22* **簡單設定**:使用我們的安裝程式和 API 金鑰在幾分鐘內開始使用
23* **預設安全**:您的程式碼保留在 Github 的執行器上
24 23
25<h2 id="what-can-claude-do">24* **快速設定**:從 Claude Code 執行 `/install-github-app`。Claude Code 安裝 GitHub App、新增您的身份驗證密鑰,並為您準備工作流程 pull request
26 Claude 可以做什麼?25* **手動設定**:安裝應用程式、新增密鑰,並自己將工作流程檔案複製到您的儲存庫。當您不在本地執行 Claude Code、命令失敗或您想完全控制工作流程檔案時,請使用此路徑
27</h2>
28 26
29Claude Code 提供了一個強大的 GitHub Action,改變了您使用程式碼的方式:27對於任一路徑,您需要對儲存庫具有管理員存取權限。
30 28
31<h3 id="claude-code-action">29<h3 id="quick-setup">
32 Claude Code Action30 快速設定
33</h3>31</h3>
34 32
35此 GitHub Action 允許您在 GitHub Actions 工作流程中執行 Claude Code。您可以使用此功能在 Claude Code 之上建立任何自訂工作流程。33`/install-github-app` 僅適用於 github.com 儲存庫。如果您的儲存庫的 git 遠端在 gitlab.com 或 bitbucket.org 上,該命令會列印通知並退出,而不是開始設定。若要從 GitLab 管道執行 Claude Code,請參閱 [Claude Code GitLab CI/CD](/docs/zh-TW/gitlab-ci-cd)。
36 34
37[檢視儲存庫 →](https://github.com/anthropics/claude-code-action)35在開始之前,安裝 [GitHub CLI](https://cli.github.com) 並使用 `gh auth login` 進行身份驗證。Claude Code 會檢查它並在缺少時警告您。
38 36
39<h2 id="setup">37在您想要連接的儲存庫中開啟 `claude`,執行 `/install-github-app`,並按照提示進行。Claude Code 安裝 Claude GitHub App,然後為工作流程設定身份驗證密鑰:
40 設定
41</h2>
42 38
43<h2 id="quick-setup">39* 如果 Claude Code 已經有 API 金鑰,它會重複使用該金鑰,並提供保留儲存庫現有 `ANTHROPIC_API_KEY` 密鑰的選項(如果已設定)
44 快速設定40* 否則,選擇使用您的 Claude 訂閱建立長期令牌或貼上 API 金鑰
45</h2>41
42Claude Code 將認證儲存為儲存庫密鑰,API 金鑰命名為 `ANTHROPIC_API_KEY`,或訂閱令牌命名為 `CLAUDE_CODE_OAUTH_TOKEN`。
43
44Claude Code 然後推送包含您選擇的工作流程檔案的分支,已設定為使用該密鑰,並在您的瀏覽器中開啟 GitHub,準備建立 pull request。建立並合併該 pull request,`@claude` 就可以在儲存庫中工作。
45
46如果您選擇審查工作流程,Claude 會在 pull request 本身上發佈每個審查,作為它發現的每個問題的內聯評論,或在未發現任何問題時作為一個摘要評論。Claude 會跳過某些 pull request,例如草稿。[審查工作流程範例](#run-a-skill)使用相同的技能並列出它們。在 v2.1.229 之前,Claude 只將其審查寫入工作流程執行日誌。
46 47
47在 Claude Code 終端機中執行 `/install-github-app` 以互動方式設定整合。此命令會在您的儲存庫上安裝 Claude GitHub App,然後引導您完成新增 GitHub Actions 工作流程和 API 金鑰密鑰的步驟。48若要更新較早版本生成的審查工作流程,請執行以下操作之一:
48 49
49安裝 GitHub App 後,命令會詢問是否繼續進行 GitHub Actions 設定。在 Claude Code v2.1.187 及更新版本中,您可以選擇**暫時跳過**以僅安裝 App 並停止,然後透過再次執行 `/install-github-app` 返回工作流程和密鑰步驟。較早的版本會直接進行工作流程選擇。50* 再次執行 `/install-github-app`。當儲存庫已經有 `claude.yml` 時,選擇**使用最新版本更新工作流程檔案**。Claude Code 將新的工作流程檔案副本推送到新分支並開啟 pull request,與首次安裝相同。
51* 自己將 `--comment` 引數和 [審查工作流程範例](#run-a-skill)中的 `claude_args` 行新增到簽入的檔案,這會保留您對其所做的任何其他編輯。
52
53安裝 GitHub App 後,Claude Code 會詢問是否繼續進行 GitHub Actions 設定。選擇**暫時跳過**以僅安裝 GitHub App。稍後再次執行 `/install-github-app` 以完成工作流程和密鑰步驟。在 v2.1.187 之前,Claude Code 直接進行工作流程選擇。
50 54
51<Note>55<Note>
52 * 您必須是儲存庫管理員才能安裝 GitHub app 並新增密鑰56 * 安裝 GitHub App 時,您授予它多個權限。有關完整集合,請參閱 [GitHub App 權限](#github-app-permissions)
53 * GitHub app 將要求對內容、議題和 Pull request 的讀取和寫入權限57 * 快速設定適用於 Claude API 和 Claude 訂閱。如果您使用 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry,請參閱[使用 Claude Code GitHub Actions 與雲端提供者](/docs/zh-TW/github-actions-cloud-providers)
54 * 此快速入門方法僅適用於直接 Claude API 使用者。如果您使用 Amazon Bedrock 或 Google Cloud 的 Agent Platform,請參閱 [使用 Amazon Bedrock 和 Google Cloud](#using-with-amazon-bedrock-and-google-cloud) 部分。
55</Note>58</Note>
56 59
57<h2 id="manual-setup">60<h3 id="manual-setup">
58 手動設定61 手動設定
59</h2>62</h3>
63
64若要在不執行 `/install-github-app` 的情況下設定 Claude Code GitHub Action,請安裝應用程式、新增密鑰並自己複製工作流程檔案:
65
66<Steps>
67 <Step title="安裝 Claude GitHub App">
68 將 [Claude GitHub App](https://github.com/apps/claude) 安裝到您的儲存庫。Claude Code GitHub Action 依賴應用程式的三個權限:
69
70 * **Contents**:讀取和寫入,以便 Claude 可以修改儲存庫檔案
71 * **Issues**:讀取和寫入,以便 Claude 可以回應議題
72 * **Pull requests**:讀取和寫入,以便 Claude 可以建立 PR 並推送變更
60 73
61如果 `/install-github-app` 命令失敗或您偏好手動設定,請遵循以下手動設定說明:74 在安裝期間,您也授予其他 Claude 功能使用的權限。有關完整集合,請參閱 [GitHub App 權限](#github-app-permissions)。
75 </Step>
62 76
631. **安裝 Claude GitHub app** 到您的儲存庫:[https://github.com/apps/claude](https://github.com/apps/claude)77 <Step title="新增身份驗證密鑰">
78 根據您的身份驗證方式,將以下密鑰之一新增到您的儲存庫。請參閱 GitHub 的[在 GitHub Actions 中使用密鑰](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions)指南。
64 79
65 Claude GitHub app 需要以下儲存庫權限:80 * `ANTHROPIC_API_KEY`:來自 [Claude Console](https://platform.claude.com) 的 Claude API 金鑰
81 * `CLAUDE_CODE_OAUTH_TOKEN`:使用您的 Claude 訂閱進行身份驗證的 OAuth 令牌,在 Pro、Max、Team 和 Enterprise 計劃上可用。透過在本地執行 `claude setup-token` 生成一個。請參閱[生成長期令牌](/docs/zh-TW/authentication#generate-a-long-lived-token)
66 82
67 * **Contents**:讀取和寫入(修改儲存庫檔案)83 在工作流程檔案中,將密鑰傳遞給匹配的輸入:API 金鑰為 `anthropic_api_key`,或 OAuth 令牌為 `claude_code_oauth_token`。
68 * **Issues**:讀取和寫入(回應議題)84 </Step>
69 * **Pull requests**:讀取和寫入(建立 PR 和推送變更)
70 85
71 如需有關安全性和權限的更多詳細資訊,請參閱 [安全性文件](https://github.com/anthropics/claude-code-action/blob/main/docs/security.md)。86 <Step title="複製工作流程檔案">
722. **新增 ANTHROPIC\_API\_KEY** 到您的儲存庫密鑰([了解如何在 GitHub Actions 中使用密鑰](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions))87 將 [examples/claude.yml](https://github.com/anthropics/claude-code-action/blob/main/examples/claude.yml) 複製到您的儲存庫的 `.github/workflows/` 目錄。該檔案是一個工作流程,而不僅僅是一個範例。按照提交,Claude 在有人在議題或 pull request 中提及 `@claude` 時回應,使用 `ANTHROPIC_API_KEY` 密鑰進行身份驗證。如果您改為新增了 `CLAUDE_CODE_OAUTH_TOKEN`,請將工作流程的 `anthropic_api_key` 行變更為 `claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}`。
733. **複製工作流程檔案** 從 [examples/claude.yml](https://github.com/anthropics/claude-code-action/blob/main/examples/claude.yml) 到您的儲存庫的 `.github/workflows/`88 </Step>
89</Steps>
74 90
75<Tip>91<Tip>
76 完成快速入門或手動設定後,透過在議題或 PR 評論中標記 `@claude` 來測試 action。92 設定後,透過在議題或 PR 評論中標記 `@claude` 來測試 Claude Code GitHub Action。
77</Tip>93</Tip>
78 94
79<h2 id="upgrading-from-beta">95<h3 id="set-up-for-an-organization">
80 從 Beta 升級96 為組織設定
81</h2>97</h3>
82 98
83<Warning>99使用快速設定或手動設定,您一次設定一個儲存庫。若要在整個組織中推出 Claude Code GitHub Action:
84 Claude Code GitHub Actions v1.0 引入了重大變更,需要更新您的工作流程檔案才能從 beta 版本升級到 v1.0。
85</Warning>
86 100
87如果您目前使用 Claude Code GitHub Actions 的 beta 版本,我們建議您更新工作流程以使用 GA 版本。新版本簡化了設定,同時新增了強大的新功能,如自動模式偵測。101* 在組織級別安裝 [Claude GitHub App](https://github.com/apps/claude) 一次,選擇所有儲存庫或選定清單
102* 將身份驗證密鑰儲存為組織級別的 Actions 密鑰,以便每個儲存庫不需要自己的副本
103* 將工作流程檔案新增到應該執行 Claude Code GitHub Action 的每個儲存庫,或將工作定義一次作為[可重複使用的工作流程](https://docs.github.com/en/actions/using-workflows/reusing-workflows),每個儲存庫都會呼叫
88 104
89<h3 id="essential-changes">105對於跨儲存庫共享的密鑰,使用來自 [Claude Console](https://platform.claude.com) 的 API 金鑰進行身份驗證,而不是 OAuth 令牌,因為 OAuth 令牌與執行 `claude setup-token` 的人的訂閱相關聯。
90 基本變更106
91</h3>107若要完全避免儲存長期密鑰,請透過工作負載身份聯盟進行身份驗證,其中 Claude Code GitHub Action 將工作流程的 GitHub OpenID Connect (OIDC) 令牌交換為透過 Claude Console 服務帳戶的 Claude API 存取。設定這些輸入:
92 108
93所有 beta 使用者必須對其工作流程檔案進行這些變更才能升級:109* `anthropic_federation_rule_id`:聯盟規則 ID,`fdrl_...`
110* `anthropic_organization_id`:您的 Anthropic 組織 ID
111* `anthropic_service_account_id`:服務帳戶 ID,`svac_...`。可選,因為您在 Console 中建立的聯盟規則已經針對服務帳戶
112* `anthropic_workspace_id`:工作區 ID,`wrkspc_...`。當聯盟規則針對單個工作區時可選
94 113
951. **更新 action 版本**:將 `@beta` 變更為 `@v1`114授予工作流程 `id-token: write` 權限,Claude Code GitHub Action 需要它進行聯盟交換,即使您傳遞自己的 `github_token`。有關 Console 端設定,請參閱 [Claude Code GitHub Action 的設定指南](https://github.com/anthropics/claude-code-action/blob/main/docs/setup.md)。
962. **移除模式設定**:刪除 `mode: "tag"` 或 `mode: "agent"`(現在自動偵測)
973. **更新提示輸入**:將 `direct_prompt` 替換為 `prompt`
984. **移動 CLI 選項**:將 `max_turns`、`model`、`custom_instructions` 等轉換為 `claude_args`
99 115
100<h3 id="breaking-changes-reference">116如需安全審查中的資料處理和保留問題,請參閱[資料使用](/docs/zh-TW/data-usage)和[安全性](/docs/zh-TW/security)。
101 重大變更參考117
118<h3 id="uninstall">
119 解除安裝
102</h3>120</h3>
103 121
104| 舊 Beta 輸入 | 新 v1.0 輸入 |122若要移除 Claude Code GitHub Action,請撤銷適用於您的安裝的每個設定部分:
105| --------------------- | ------------------------------------- |123
106| `mode` | *(已移除 - 自動偵測)* |124* **工作流程檔案**:從 `.github/workflows/` 中刪除使用 `anthropics/claude-code-action` 的工作流程。如果您使用了快速設定,請查找 `claude.yml`,如果您選擇了審查工作流程,請查找 `claude-code-review.yml`。刪除工作流程後,Claude Code GitHub Action 不再執行
107| `direct_prompt` | `prompt` |125* **密鑰**:從儲存庫中刪除 `ANTHROPIC_API_KEY` 或 `CLAUDE_CODE_OAUTH_TOKEN` 密鑰,以及從組織級別的 Actions 密鑰(如果您[跨儲存庫共享它](#set-up-for-an-organization))。如果您刪除密鑰,它持有的認證保持有效。若要完全停用 API 金鑰,也請在 [Claude Console](https://platform.claude.com) 中刪除金鑰
108| `override_prompt` | `prompt` 搭配 GitHub 變數 |126* **GitHub App**:在您的儲存庫或組織設定中的 GitHub Apps 下解除安裝 Claude GitHub App,但僅當您不將其用於另一個 Claude 功能(例如 Code Review 或 web 自動修復)時
109| `custom_instructions` | `claude_args: --append-system-prompt` |127
110| `max_turns` | `claude_args: --max-turns` |128如果您設定了[雲端提供者](/docs/zh-TW/github-actions-cloud-providers),也請刪除提供者密鑰,例如 `AWS_ROLE_TO_ASSUME`、`GCP_*` 密鑰或 `AZURE_*` 密鑰,並解除安裝自訂 GitHub App 及其 `APP_ID` 和 `APP_PRIVATE_KEY` 密鑰。
111| `model` | `claude_args: --model` |129
112| `allowed_tools` | `claude_args: --allowedTools` |130<h3 id="github-app-permissions">
113| `disallowed_tools` | `claude_args: --disallowedTools` |131 GitHub App 權限
114| `claude_env` | `settings` JSON 格式 |
115
116<h3 id="before-and-after-example">
117 前後範例
118</h3>132</h3>
119 133
120**Beta 版本:**134[Claude GitHub App](https://github.com/apps/claude) 由與 GitHub 整合的每個 Claude 功能共享,包括 Claude Code GitHub Action、[Code Review](/docs/zh-TW/code-review) 和 [Claude Code on the web 上的自動修復](/docs/zh-TW/claude-code-on-the-web#auto-fix-pull-requests)。GitHub App 有一個涵蓋其所有功能的單一權限集,因此該集包括 Claude Code GitHub Action 不使用的某些權限。
121 135
122```yaml theme={null}136安裝應用程式時,您授予以下權限:
123- uses: anthropics/claude-code-action@beta
124 with:
125 mode: "tag"
126 direct_prompt: "Review this PR for security issues"
127 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
128 custom_instructions: "Follow our coding standards"
129 max_turns: "10"
130 model: "claude-sonnet-5"
131```
132 137
133**GA 版本 (v1.0):**138| 權限 | 存取 |
139| ---------------- | ----- |
140| Actions | 讀取和寫入 |
141| Checks | 讀取和寫入 |
142| Contents | 讀取和寫入 |
143| Discussions | 讀取和寫入 |
144| Issues | 讀取和寫入 |
145| Members | 讀取 |
146| Metadata | 讀取 |
147| Pull requests | 讀取和寫入 |
148| Repository hooks | 讀取和寫入 |
149| Statuses | 讀取 |
150| Workflows | 讀取和寫入 |
134 151
135```yaml theme={null}152權限集也可以在使用它的功能之前變更。當應用程式請求它之前沒有的權限時,GitHub 會提示帳戶擁有者批准它,組織安裝的組織擁有者,安裝保持其舊權限直到他們這樣做。例如,當 Actions 存取從讀取變更為寫入時,應用程式可以重新執行工作流程而不僅查看執行和日誌,因此 GitHub 要求擁有者批准變更。
136- uses: anthropics/claude-code-action@v1
137 with:
138 prompt: "Review this PR for security issues"
139 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
140 claude_args: |
141 --append-system-prompt "Follow our coding standards"
142 --max-turns 10
143 --model claude-sonnet-5
144```
145 153
146<Tip>154安裝應用程式時,您接受其完整權限集。GitHub 不允許您接受子集。如果您的組織僅需要 Claude Code GitHub Action 使用的權限,請按照 [Claude Code GitHub Action 的設定指南](https://github.com/anthropics/claude-code-action/blob/main/docs/setup.md)建立具有 Contents、Issues 和 Pull requests 的自訂 GitHub App。自訂應用程式僅涵蓋 Claude Code GitHub Action。Code Review 和 web 自動修復仍需要官方應用程式。
147 該 action 現在會根據您的設定自動偵測是否在互動模式(回應 `@claude` 提及)或自動化模式(立即使用提示執行)中執行。155
148</Tip>156有關 Claude Code GitHub Action 如何限制 Claude 對這些權限的操作的詳細資訊,請參閱[安全性文件](https://github.com/anthropics/claude-code-action/blob/main/docs/security.md)。
157
158<h2 id="interactive-and-automation-modes">
159 互動和自動化模式
160</h2>
161
162Claude Code GitHub Action 從您的工作流程設定中偵測如何執行:
163
164* **互動模式**:當工作流程不提供 `prompt` 輸入時,Claude 等待觸發短語 `@claude`(預設),在議題或 pull request 評論、pull request 審查或新開啟議題的正文或標題中,然後回應該請求。進度和結果顯示為觸發議題或 PR 上的評論。
165* **自動化模式**:當工作流程提供 `prompt` 輸入時,Claude 執行而不等待提及,僅受[誰可以觸發執行](#who-can-trigger-runs)的檢查限制。預設情況下,結果顯示在工作流程執行日誌中,而不是評論。Claude 可以在提示指導它並且它有可以發佈的工具時發佈到議題或 pull request,如[程式碼審查範例](#run-a-skill)中所示。
166
167<h3 id="who-can-trigger-runs">
168 誰可以觸發執行
169</h3>
170
171在兩種模式中,Claude Code GitHub Action 在 Claude 開始之前對觸發執行者執行兩個檢查,當任一檢查拒絕它時執行失敗:
172
173* **寫入存取**:在議題和 pull request 事件上,觸發使用者必須對儲存庫具有寫入存取權限。若要允許沒有寫入存取權限的特定使用者,請設定 `allowed_non_write_users` 並傳遞您自己的 `github_token` 輸入。沒有使用者撰寫的事件(例如 `schedule` 觸發器)會跳過此檢查。
174* **人類執行者**:在每個事件上,Claude Code GitHub Action 拒絕機器人執行者,除非您在 `allowed_bots` 中列出它,這可以防止機器人在迴圈中觸發 Claude。此檢查也適用於排程執行,GitHub 將其歸因於儲存庫使用者,通常是最後變更工作流程 `cron` 排程的使用者。如果該使用者是機器人,請在 `allowed_bots` 中列出它。
149 175
150<h2 id="example-use-cases">176<h2 id="example-use-cases">
151 範例使用案例177 範例使用案例
152</h2>178</h2>
153 179
154Claude Code GitHub Actions 可以幫助您完成各種任務。[examples 目錄](https://github.com/anthropics/claude-code-action/tree/main/examples)包含適用於不同情境的現成工作流程。180[examples 目錄](https://github.com/anthropics/claude-code-action/tree/main/examples)包含適用於不同情境的現成工作流程。
155 181
156<h3 id="basic-workflow">182本頁上的範例顯示 API 金鑰身份驗證。如果您使用 Claude 訂閱進行身份驗證,請將任何範例中的 `anthropic_api_key` 行替換為 `claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}`。
157 基本工作流程183
184<h3 id="respond-to-claude-mentions">
185 回應 @claude 提及
158</h3>186</h3>
159 187
188此工作流程在互動模式下執行 Claude Code GitHub Action,因此每當有人在議題或 PR 評論中提及 `@claude` 時,Claude 都會回應。
189
160```yaml theme={null}190```yaml theme={null}
161name: Claude Code191name: Claude Code
162on:192on:
166 types: [created]196 types: [created]
167jobs:197jobs:
168 claude:198 claude:
199 if: contains(github.event.comment.body, '@claude')
169 runs-on: ubuntu-latest200 runs-on: ubuntu-latest
201 permissions:
202 contents: write
203 pull-requests: write
204 issues: write
205 id-token: write
206 actions: read
170 steps:207 steps:
208 - uses: actions/checkout@v6
209 with:
210 fetch-depth: 1
171 - uses: anthropics/claude-code-action@v1211 - uses: anthropics/claude-code-action@v1
172 with:212 with:
173 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}213 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
174 # Responds to @claude mentions in comments
175```214```
176 215
177<h3 id="using-skills">216此工作流程中不是樣板的部分:
178 使用 skills217
218* `id-token: write`:Claude Code GitHub Action 的預設 GitHub App 身份驗證所需
219* `actions: read`:讓 Claude 讀取 PR 上的 CI 結果
220* `actions/checkout`:給 Claude 儲存庫的本地副本以在其中工作
221* `if`:防止執行器在不提及 `@claude` 的評論上啟動。Claude Code GitHub Action 也在回應之前檢查觸發短語本身
222
223工作流程就位後,在任何議題或 PR 評論中提及 `@claude` 並提出請求:
224
225```text wrap theme={null}
226@claude implement this feature based on the issue description
227@claude how should I implement user authentication for this endpoint?
228@claude fix the TypeError in the user dashboard component
229```
230
231Claude 在同一議題或 PR 上的評論中回應並在工作時更新它。
232
233<h3 id="run-a-skill">
234 執行技能
179</h3>235</h3>
180 236
181`prompt` 輸入接受 [skill](/zh-TW/skills) 調用以及純文本:237`prompt` 輸入接受[技能](/docs/zh-TW/skills)調用以及純文字:
182 238
183* 對於存放在您的儲存庫 `.claude/skills/` 目錄中的 skill,請在操作步驟之前執行 `actions/checkout`,並傳遞 `/skill-name`。239* 對於儲存庫的 `.claude/skills/` 目錄中的技能,在 `anthropics/claude-code-action` 步驟之前執行 `actions/checkout`,以便技能檔案在執行器上可用,然後將 `/skill-name` 作為 `prompt` 傳遞。
184* 對於打包在外掛程式中的 skill,請使用 `plugin_marketplaces` 和 `plugins` 輸入安裝外掛程式,並傳遞命名空間 `/plugin-name:skill-name`。240* 對於打包在[外掛程式](/docs/zh-TW/plugins)中的技能,使用 `plugin_marketplaces` 和 `plugins` 輸入安裝外掛程式,然後將命名空間 `/plugin-name:skill-name` 作為 `prompt` 傳遞。`plugins` 輸入採用 `plugin-name@marketplace-name`,其中市場名稱來自市場自己的清單,而不是其儲存庫 URL。
185 241
186以下工作流程安裝 `code-review` 外掛程式,並在每個新的或更新的提取請求上執行其 skill:242以下工作流程安裝 `code-review` 外掛程式,並在 pull request 開啟、更新、重新開啟或標記為準備審查時執行其技能。它執行與快速設定中的審查工作流程相同的外掛程式。當您想控制提示、模型和觸發器本身時,使用這樣的工作流程。如需自動審查而無需維護工作流程檔案,請參閱 [Code Review](/docs/zh-TW/code-review)。在公開儲存庫上,GitHub 從 fork pull request 觸發的執行中扣留密鑰,因此審查僅在來自同一儲存庫中分支的 pull request 上執行。
187 243
188```yaml theme={null}244```yaml theme={null}
189name: Code Review245name: Code Review
190on:246on:
191 pull_request:247 pull_request:
192 types: [opened, synchronize]248 types: [opened, synchronize, ready_for_review, reopened]
193jobs:249jobs:
194 review:250 review:
195 runs-on: ubuntu-latest251 runs-on: ubuntu-latest
252 permissions:
253 contents: read
254 pull-requests: read
255 issues: read
256 id-token: write
196 steps:257 steps:
258 - uses: actions/checkout@v6
259 with:
260 fetch-depth: 1
197 - uses: anthropics/claude-code-action@v1261 - uses: anthropics/claude-code-action@v1
198 with:262 with:
199 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}263 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
200 plugin_marketplaces: "https://github.com/anthropics/claude-code.git"264 plugin_marketplaces: "https://github.com/anthropics/claude-code.git"
201 plugins: "code-review@claude-code-plugins"265 plugins: "code-review@claude-code-plugins"
202 prompt: "/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"266 prompt: "/code-review:code-review --comment ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"
267 claude_args: '--allowedTools "mcp__github_inline_comment__create_inline_comment"'
203```268```
204 269
205<h3 id="custom-automation-with-prompts">270此工作流程中的兩行控制審查的去向:
206 使用提示的自訂自動化271
272* **`--comment`**:Claude 在 pull request 上發佈其審查,作為它發現的每個問題的內聯評論,或在未發現任何問題時作為一個摘要評論。沒有它,Claude 不發佈任何內容,您在工作流程執行日誌中讀取發現。
273* **`claude_args`**:即使技能自己的 `allowed-tools` frontmatter 命名相同的工具,也要保留此行,因為 Claude Code GitHub Action 僅在 `claude_args` 中的 `--allowedTools` 命名它時才啟動發佈內聯評論的 MCP 伺服器。
274
275Claude 跳過草稿和已關閉的 pull request、它判斷不需要審查的 pull request(例如自動化或瑣碎的),以及已經有來自 Claude 的評論的 pull request。
276
277<h3 id="run-on-a-schedule">
278 按排程執行
207</h3>279</h3>
208 280
281使用 `prompt` 輸入,Claude Code GitHub Action 在任何 GitHub 事件上以自動化模式執行,包括 cron 排程。對於純文字提示,Claude 沒有 shell 或 GitHub API 存取,直到您授予提示需要的工具,使用 `claude_args` 中的 `--allowedTools` 或 `settings` 輸入中的 [`permissions.allow` 規則](/docs/zh-TW/permissions#permission-rule-syntax)。如果您改為調用技能,Claude 可以使用其 [`allowed-tools` frontmatter](/docs/zh-TW/skills#pre-approve-tools-for-a-skill) 授予的工具。GitHub 僅從預設分支執行排程工作流程,在公開儲存庫中,在 60 天無儲存庫活動後禁用排程。
282
283此工作流程在每天 09:00 UTC 在工作流程執行日誌中生成報告。其 `claude_args` 行[傳遞 CLI 引數](#pass-cli-arguments),選擇模型並允許兩個 GitHub MCP 工具。Claude 透過這些工具使用 GitHub API 讀取提交和議題,因此您可以省略簽出步驟:
284
209```yaml theme={null}285```yaml theme={null}
210name: Daily Report286name: Daily Report
211on:287on:
214jobs:290jobs:
215 report:291 report:
216 runs-on: ubuntu-latest292 runs-on: ubuntu-latest
293 permissions:
294 contents: read
295 issues: read
296 id-token: write
217 steps:297 steps:
218 - uses: anthropics/claude-code-action@v1298 - uses: anthropics/claude-code-action@v1
219 with:299 with:
220 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}300 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
221 prompt: "Generate a summary of yesterday's commits and open issues"301 prompt: "Generate a summary of yesterday's commits and open issues"
222 claude_args: "--model opus"302 claude_args: |
223```303 --model claude-opus-4-8
224 304 --allowedTools "mcp__github__list_commits,mcp__github__list_issues"
225<h3 id="common-use-cases">
226 常見使用案例
227</h3>
228
229在議題或 PR 評論中:
230
231```text wrap theme={null}
232@claude implement this feature based on the issue description
233@claude how should I implement user authentication for this endpoint?
234@claude fix the TypeError in the user dashboard component
235```305```
236 306
237Claude 將自動分析上下文並做出適當的回應。
238
239<h2 id="best-practices">307<h2 id="best-practices">
240 最佳實踐308 最佳實踐
241</h2>309</h2>
242 310
243<h3 id="claude-md-configuration">311<h3 id="define-project-standards-in-claude-md">
244 CLAUDE.md 設定312 在 CLAUDE.md 中定義專案標準
245</h3>313</h3>
246 314
247在您的儲存庫根目錄建立 `CLAUDE.md` 檔案,以定義程式碼風格指南、審查標準、專案特定規則和偏好的模式。此檔案指導 Claude 對您的專案標準的理解。315在您的儲存庫根目錄建立 `CLAUDE.md` 檔案,以定義程式碼風格指南、審查標準、專案特定規則和偏好的模式。Claude 在建立 PR 和回應請求時遵循這些指南。有關詳細資訊,請參閱[記憶體文件](/docs/zh-TW/memory)。
248 316
249<h3 id="security-considerations">317<h3 id="protect-your-credentials">
250 安全考量318 保護您的認證
251</h3>319</h3>
252 320
253<Warning>永遠不要直接將 API 金鑰提交到您的儲存庫。</Warning>321<Warning>
254 322 永遠不要直接將 API 金鑰或 OAuth 令牌提交到您的儲存庫。始終將它們儲存為 GitHub Secrets 並在工作流程中參考它們,例如 `anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}`。
255如需包括權限、身份驗證和最佳實踐的全面安全指導,請參閱 [Claude Code Action 安全性文件](https://github.com/anthropics/claude-code-action/blob/main/docs/security.md)。323</Warning>
256
257始終使用 GitHub Secrets 來存放 API 金鑰:
258
259* 將您的 API 金鑰新增為名為 `ANTHROPIC_API_KEY` 的儲存庫密鑰
260* 在工作流程中參考它:`anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}`
261* 將 action 權限限制為僅必要的權限
262* 在合併前審查 Claude 的建議
263
264始終使用 GitHub Secrets(例如 `${{ secrets.ANTHROPIC_API_KEY }}`)而不是直接在工作流程檔案中硬編碼 API 金鑰。
265 324
266<h3 id="optimizing-performance">325僅授予工作流程它需要的權限,並在合併前審查 Claude 的變更。
267 最佳化效能
268</h3>
269 326
270使用議題範本提供上下文,保持您的 `CLAUDE.md` 簡潔且專注,並為您的工作流程設定適當的逾時。327如需包括權限和身份驗證的全面安全指導,請參閱 [Claude Code Action 安全性文件](https://github.com/anthropics/claude-code-action/blob/main/docs/security.md)。
271 328
272<h3 id="ci-costs">329<h3 id="manage-costs">
273 CI 成本330 管理成本
274</h3>331</h3>
275 332
276使用 Claude Code GitHub Actions 時,請注意相關成本:333每次執行消耗兩種資源:
277
278**GitHub Actions 成本:**
279
280* Claude Code 在 GitHub 託管的執行器上執行,這會消耗您的 GitHub Actions 分鐘數
281* 請參閱 [GitHub 的計費文件](https://docs.github.com/en/billing/managing-billing-for-your-products/managing-billing-for-github-actions/about-billing-for-github-actions)以了解詳細的定價和分鐘限制
282
283**API 成本:**
284 334
285* 每次 Claude 互動都會根據提示和回應的長度消耗 API 令牌335* **GitHub Actions 分鐘**:Claude Code GitHub Action 在 GitHub 託管的執行器上執行,這會消耗您的 GitHub Actions 分鐘。有關定價和分鐘限制,請參閱 [GitHub 的計費文件](https://docs.github.com/en/billing/managing-billing-for-your-products/managing-billing-for-github-actions/about-billing-for-github-actions)。
286* 令牌使用量因任務複雜性和程式碼庫大小而異336* **API 令牌**:每次互動根據提示和回應的長度、任務複雜性和程式碼庫大小消耗令牌。有關目前令牌費率,請參閱 [Claude 的定價頁面](https://claude.com/platform/api)。如果您使用 OAuth 令牌進行身份驗證,執行會使用您的 Claude 訂閱,而不是 API 計費。
287* 請參閱 [Claude 的定價頁面](https://claude.com/platform/api)以了解目前的令牌費率
288 337
289**成本最佳化提示:**338您可以透過給 Claude 更清晰的上下文並限制每次執行可以做多少工作來降低兩種成本:
290 339
291* 使用特定的 `@claude` 命令來減少不必要的 API 呼叫340* 編寫特定的 `@claude` 請求,以便 Claude 需要更少的輪次完成
292* 在 `claude_args` 中設定適當的 `--max-turns` 以防止過度迭代341* 使用議題範本提前提供上下文
342* 保持您的 `CLAUDE.md` 簡潔,因為 Claude 在每次執行時讀取它
343* 在 `claude_args` 中設定 `--max-turns` 以限制迭代
293* 設定工作流程級別的逾時以避免失控的工作344* 設定工作流程級別的逾時以避免失控的工作
294* 考慮使用 GitHub 的並行控制來限制平行執行345* 使用 GitHub 的並行控制來限制平行執行
295
296<h2 id="configuration-examples">
297 設定範例
298</h2>
299
300Claude Code Action v1 使用統一參數簡化了設定:
301
302```yaml theme={null}
303- uses: anthropics/claude-code-action@v1
304 with:
305 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
306 prompt: "Your instructions here" # Optional
307 claude_args: "--max-turns 5" # Optional CLI arguments
308```
309
310主要功能:
311
312* **統一提示介面** - 對所有指令使用 `prompt`
313* **Skills** - 直接從提示中呼叫已安裝的 [skills](/zh-TW/skills)
314* **CLI 傳遞** - 透過 `claude_args` 的任何 Claude Code CLI 引數
315* **靈活的觸發器** - 適用於任何 GitHub 事件
316
317訪問 [examples 目錄](https://github.com/anthropics/claude-code-action/tree/main/examples)以取得完整的工作流程檔案。
318 346
319<Tip>347如需跨組織的使用情況追蹤,請參閱[分析儀表板](/docs/zh-TW/analytics)和[監控](/docs/zh-TW/monitoring-usage)。如需使用情況的測量和計費方式,請參閱[成本](/docs/zh-TW/costs)。
320 當回應議題或 PR 評論時,Claude 會自動回應 @claude 提及。對於其他事件,使用 `prompt` 參數來提供指令。
321</Tip>
322 348
323<h2 id="using-with-amazon-bedrock-and-google-cloud">349<h2 id="use-a-cloud-provider">
324 使用 Amazon Bedrock 和 Google Cloud350 使用雲端提供者
325</h2>351</h2>
326 352
327對於企業環境,您可以使用 Claude Code GitHub Actions 搭配您自己的雲端基礎設施。此方法讓您可以控制資料駐留和計費,同時保持相同的功能。353預設情況下,Claude Code GitHub Action 使用您的 API 金鑰或 OAuth 令牌直接呼叫 Claude API。若要改為透過您自己的雲端帳戶路由推理,請設定您的提供者的輸入並按照[使用 Claude Code GitHub Actions 與雲端提供者](/docs/zh-TW/github-actions-cloud-providers):
328
329<h3 id="prerequisites">
330 先決條件
331</h3>
332
333在使用雲端提供者設定 Claude Code GitHub Actions 之前,您需要:
334
335<h4 id="for-google-cloud’s-agent-platform">
336 對於 Google Cloud 的 Agent Platform:
337</h4>
338
3391. 啟用了 Google Cloud 的 Agent Platform 的 Google Cloud 專案
3402. 為 GitHub Actions 設定的工作負載身份聯盟
3413. 具有所需權限的服務帳戶
3424. GitHub App(建議)或使用預設 GITHUB\_TOKEN
343
344<h4 id="for-amazon-bedrock">
345 對於 Amazon Bedrock:
346</h4>
347
3481. 啟用了 Amazon Bedrock 的 AWS 帳戶
3492. 在 AWS 中設定的 GitHub OIDC 身份提供者
3503. 具有 Amazon Bedrock 權限的 IAM 角色
3514. GitHub App(建議)或使用預設 GITHUB\_TOKEN
352
353<Steps>
354 <Step title="建立自訂 GitHub App(建議用於第三方提供者)">
355 為了在使用 Google Cloud 的 Agent Platform 或 Amazon Bedrock 等第三方提供者時獲得最佳控制和安全性,我們建議建立您自己的 GitHub App:
356
357 1. 前往 [https://github.com/settings/apps/new](https://github.com/settings/apps/new)
358 2. 填寫基本資訊:
359 * **GitHub App 名稱**:選擇唯一的名稱(例如'YourOrg Claude Assistant')
360 * **首頁 URL**:您的組織網站或儲存庫 URL
361 3. 設定 app 設定:
362 * **Webhooks**:取消勾選'Active'(此整合不需要)
363 4. 設定所需的權限:
364 * **儲存庫權限**:
365 * Contents:讀取和寫入
366 * Issues:讀取和寫入
367 * Pull requests:讀取和寫入
368 5. 點擊'Create GitHub App'
369 6. 建立後,點擊'Generate a private key'並儲存下載的 `.pem` 檔案
370 7. 從 app 設定頁面記下您的 App ID
371 8. 將 app 安裝到您的儲存庫:
372 * 從您的 app 設定頁面,點擊左側邊欄中的'Install App'
373 * 選擇您的帳戶或組織
374 * 選擇'Only select repositories'並選擇特定儲存庫
375 * 點擊'Install'
376 9. 將私鑰新增為儲存庫密鑰:
377 * 前往您的儲存庫的 Settings → Secrets and variables → Actions
378 * 建立名為 `APP_PRIVATE_KEY` 的新密鑰,內容為 `.pem` 檔案的內容
379 10. 將 App ID 新增為密鑰:
380
381 * 建立名為 `APP_ID` 的新密鑰,內容為您的 GitHub App 的 ID
382
383 <Note>
384 此 app 將與 [actions/create-github-app-token](https://github.com/actions/create-github-app-token) action 一起使用,以在您的工作流程中產生身份驗證令牌。
385 </Note>
386
387 **Claude API 的替代方案或如果您不想設定自己的 Github app**:使用官方 Anthropic app:
388
389 1. 從以下位置安裝:[https://github.com/apps/claude](https://github.com/apps/claude)
390 2. 無需額外的身份驗證設定
391 </Step>
392
393 <Step title="設定雲端提供者身份驗證">
394 選擇您的雲端提供者並設定安全的身份驗證:
395
396 <AccordionGroup>
397 <Accordion title="Amazon Bedrock">
398 **設定 AWS 以允許 GitHub Actions 安全地進行身份驗證,而無需儲存認證。**
399
400 > **安全性注意**:使用儲存庫特定的設定並僅授予最少所需的權限。
401
402 **必需的設定**:
403
404 1. **啟用 Amazon Bedrock**:
405 * 請求在 Amazon Bedrock 中存取 Claude 模型
406 * 對於跨區域模型,請在所有必需的區域中請求存取
407
408 2. **設定 GitHub OIDC 身份提供者**:
409 * 提供者 URL:`https://token.actions.githubusercontent.com`
410 * 受眾:`sts.amazonaws.com`
411
412 3. **為 GitHub Actions 建立 IAM 角色**:
413 * 受信任的實體類型:Web 身份
414 * 身份提供者:`token.actions.githubusercontent.com`
415 * 權限:`AmazonBedrockFullAccess` 政策
416 * 為您的特定儲存庫設定信任政策
417
418 **必需的值**:
419
420 設定後,您將需要:
421
422 * **AWS\_ROLE\_TO\_ASSUME**:您建立的 IAM 角色的 ARN
423
424 <Tip>
425 OIDC 比使用靜態 AWS 存取金鑰更安全,因為認證是臨時的並自動輪換。
426 </Tip>
427
428 請參閱 [AWS 文件](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html)以取得詳細的 OIDC 設定說明。
429 </Accordion>
430
431 <Accordion title="Google Cloud 的 Agent Platform">
432 **設定 Google Cloud 以允許 GitHub Actions 安全地進行身份驗證,而無需儲存認證。**
433 354
434 > **安全性注意**:使用儲存庫特定的設定並僅授予最少所需的權限。355* **Amazon Bedrock**:`use_bedrock: "true"`
356* **Google Cloud 的 Agent Platform**:`use_vertex: "true"`
357* **Microsoft Foundry**:`use_foundry: "true"`
435 358
436 **必需的設定**:359使用所有三個提供者,您透過 OIDC 身份聯盟進行身份驗證,而不是 Claude API 金鑰,因此您不在儲存庫中儲存靜態雲端認證。
437
438 1. **在您的 Google Cloud 專案中啟用 API**:
439 * IAM Credentials API
440 * Security Token Service (STS) API
441 * Google Cloud 的 Agent Platform API
442
443 2. **建立工作負載身份聯盟資源**:
444 * 建立工作負載身份池
445 * 新增 GitHub OIDC 提供者,具有:
446 * 簽發者:`https://token.actions.githubusercontent.com`
447 * 儲存庫和擁有者的屬性對應
448 * **安全性建議**:使用儲存庫特定的屬性條件
449
450 3. **建立服務帳戶**:
451 * 僅授予 `Vertex AI User` 角色
452 * **安全性建議**:為每個儲存庫建立專用服務帳戶
453
454 4. **設定 IAM 繫結**:
455 * 允許工作負載身份池模擬服務帳戶
456 * **安全性建議**:使用儲存庫特定的主體集
457
458 **必需的值**:
459
460 設定後,您將需要:
461
462 * **GCP\_WORKLOAD\_IDENTITY\_PROVIDER**:完整的提供者資源名稱
463 * **GCP\_SERVICE\_ACCOUNT**:服務帳戶電子郵件地址
464
465 <Tip>
466 工作負載身份聯盟消除了對可下載服務帳戶金鑰的需求,提高了安全性。
467 </Tip>
468
469 如需詳細的設定說明,請參閱 [Google Cloud 工作負載身份聯盟文件](https://cloud.google.com/iam/docs/workload-identity-federation)。
470 </Accordion>
471 </AccordionGroup>
472 </Step>
473
474 <Step title="新增必需的密鑰">
475 將以下密鑰新增到您的儲存庫(Settings → Secrets and variables → Actions):
476
477 #### 對於 Claude API(直接):
478
479 1. **對於 API 身份驗證**:
480 * `ANTHROPIC_API_KEY`:您的 Claude API 金鑰,來自 [console.anthropic.com](https://console.anthropic.com)
481
482 2. **對於 GitHub App(如果使用您自己的 app)**:
483 * `APP_ID`:您的 GitHub App 的 ID
484 * `APP_PRIVATE_KEY`:私鑰 (.pem) 內容
485
486 #### 對於 Google Cloud 的 Agent Platform
487
488 1. **對於 GCP 身份驗證**:
489 * `GCP_WORKLOAD_IDENTITY_PROVIDER`
490 * `GCP_SERVICE_ACCOUNT`
491
492 2. **對於 GitHub App(如果使用您自己的 app)**:
493 * `APP_ID`:您的 GitHub App 的 ID
494 * `APP_PRIVATE_KEY`:私鑰 (.pem) 內容
495
496 #### 對於 Amazon Bedrock
497
498 1. **對於 AWS 身份驗證**:
499 * `AWS_ROLE_TO_ASSUME`
500
501 2. **對於 GitHub App(如果使用您自己的 app)**:
502 * `APP_ID`:您的 GitHub App 的 ID
503 * `APP_PRIVATE_KEY`:私鑰 (.pem) 內容
504 </Step>
505
506 <Step title="建立工作流程檔案">
507 建立與您的雲端提供者整合的 GitHub Actions 工作流程檔案。以下範例顯示了 Amazon Bedrock 和 Google Cloud 的 Agent Platform 的完整設定:
508
509 <AccordionGroup>
510 <Accordion title="Amazon Bedrock 工作流程">
511 **先決條件:**
512
513 * 啟用了 Amazon Bedrock 存取且具有 Claude 模型權限
514 * GitHub 在 AWS 中設定為 OIDC 身份提供者
515 * 具有 Amazon Bedrock 權限且信任 GitHub Actions 的 IAM 角色
516
517 **必需的 GitHub 密鑰:**
518
519 | 密鑰名稱 | 描述 |
520 | -------------------- | ------------------------------ |
521 | `AWS_ROLE_TO_ASSUME` | Amazon Bedrock 存取的 IAM 角色的 ARN |
522 | `APP_ID` | 您的 GitHub App ID(來自 app 設定) |
523 | `APP_PRIVATE_KEY` | 您為 GitHub App 產生的私鑰 |
524
525 ```yaml theme={null}
526 name: Claude PR Action
527
528 permissions:
529 contents: write
530 pull-requests: write
531 issues: write
532 id-token: write
533
534 on:
535 issue_comment:
536 types: [created]
537 pull_request_review_comment:
538 types: [created]
539 issues:
540 types: [opened, assigned]
541
542 jobs:
543 claude-pr:
544 if: |
545 (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
546 (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
547 (github.event_name == 'issues' && contains(github.event.issue.body, '@claude'))
548 runs-on: ubuntu-latest
549 env:
550 AWS_REGION: us-west-2
551 steps:
552 - name: Checkout repository
553 uses: actions/checkout@v4
554
555 - name: Generate GitHub App token
556 id: app-token
557 uses: actions/create-github-app-token@v2
558 with:
559 app-id: ${{ secrets.APP_ID }}
560 private-key: ${{ secrets.APP_PRIVATE_KEY }}
561
562 - name: Configure AWS Credentials (OIDC)
563 uses: aws-actions/configure-aws-credentials@v4
564 with:
565 role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
566 aws-region: us-west-2
567
568 - uses: anthropics/claude-code-action@v1
569 with:
570 github_token: ${{ steps.app-token.outputs.token }}
571 use_bedrock: "true"
572 claude_args: '--model us.anthropic.claude-sonnet-4-6 --max-turns 10'
573 ```
574
575 <Tip>
576 Amazon Bedrock 的模型 ID 格式包括區域前綴(例如 `us.anthropic.claude-sonnet-4-6`)。
577 </Tip>
578 </Accordion>
579
580 <Accordion title="Google Cloud 的 Agent Platform 工作流程">
581 **先決條件:**
582
583 * 在您的 GCP 專案中啟用了 Google Cloud 的 Agent Platform API
584 * 為 GitHub 設定的工作負載身份聯盟
585 * 具有 Google Cloud 的 Agent Platform 權限的服務帳戶
586
587 **必需的 GitHub 密鑰:**
588
589 | 密鑰名稱 | 描述 |
590 | -------------------------------- | ---------------------------------------------- |
591 | `GCP_WORKLOAD_IDENTITY_PROVIDER` | 工作負載身份提供者資源名稱 |
592 | `GCP_SERVICE_ACCOUNT` | 具有 Google Cloud 的 Agent Platform 存取權限的服務帳戶電子郵件 |
593 | `APP_ID` | 您的 GitHub App ID(來自 app 設定) |
594 | `APP_PRIVATE_KEY` | 您為 GitHub App 產生的私鑰 |
595
596 ```yaml theme={null}
597 name: Claude PR Action
598
599 permissions:
600 contents: write
601 pull-requests: write
602 issues: write
603 id-token: write
604
605 on:
606 issue_comment:
607 types: [created]
608 pull_request_review_comment:
609 types: [created]
610 issues:
611 types: [opened, assigned]
612
613 jobs:
614 claude-pr:
615 if: |
616 (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
617 (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
618 (github.event_name == 'issues' && contains(github.event.issue.body, '@claude'))
619 runs-on: ubuntu-latest
620 steps:
621 - name: Checkout repository
622 uses: actions/checkout@v4
623
624 - name: Generate GitHub App token
625 id: app-token
626 uses: actions/create-github-app-token@v2
627 with:
628 app-id: ${{ secrets.APP_ID }}
629 private-key: ${{ secrets.APP_PRIVATE_KEY }}
630
631 - name: Authenticate to Google Cloud
632 id: auth
633 uses: google-github-actions/auth@v2
634 with:
635 workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}
636 service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }}
637
638 - uses: anthropics/claude-code-action@v1
639 with:
640 github_token: ${{ steps.app-token.outputs.token }}
641 trigger_phrase: "@claude"
642 use_vertex: "true"
643 claude_args: '--model claude-sonnet-4-5@20250929 --max-turns 10'
644 env:
645 ANTHROPIC_VERTEX_PROJECT_ID: ${{ steps.auth.outputs.project_id }}
646 CLOUD_ML_REGION: us-east5
647 VERTEX_REGION_CLAUDE_4_5_SONNET: us-east5
648 ```
649
650 <Tip>
651 專案 ID 會自動從 Google Cloud 身份驗證步驟中擷取,因此您無需硬編碼它。
652 </Tip>
653 </Accordion>
654 </AccordionGroup>
655 </Step>
656</Steps>
657 360
658<h2 id="troubleshooting">361<h2 id="troubleshooting">
659 故障排除362 故障排除
663 Claude 不回應 @claude 命令366 Claude 不回應 @claude 命令
664</h3>367</h3>
665 368
666驗證 GitHub App 是否正確安裝,檢查工作流程是否已啟用,確保 API 金鑰已在儲存庫密鑰中設定,並確認評論包含 `@claude`(不是 `/claude`)。369* 驗證 GitHub App 是否安裝在儲存庫上
370* 檢查儲存庫是否啟用了工作流程
371* 確保您的 API 金鑰或 OAuth 令牌在儲存庫密鑰中設定
372* 確認評論包含 `@claude` 作為完整單詞,而不是 `/claude` 或 `@claude-bot`
373* 確認評論使用者對儲存庫具有寫入存取權限。有關例外,請參閱[誰可以觸發執行](#who-can-trigger-runs)
667 374
668<h3 id="ci-not-running-on-claude’s-commits">375<h3 id="ci-not-running-on-claude’s-commits">
669 CI 不在 Claude 的提交上執行376 CI 不在 Claude 的提交上執行
670</h3>377</h3>
671 378
672確保您使用的是 GitHub App 或自訂 app(不是 Actions 使用者),檢查工作流程觸發器是否包括必要的事件,並驗證 app 權限是否包括 CI 觸發器。379* GitHub 不在使用預設 `GITHUB_TOKEN` 進行的提交上觸發工作流程。如果您將 `github_token: ${{ secrets.GITHUB_TOKEN }}` 傳遞給 Claude Code GitHub Action,請移除它,以便它作為 Claude GitHub App 進行身份驗證,或改為傳遞自訂應用程式令牌
380* 檢查您的 CI 工作流程的觸發器是否包括 Claude 的推送產生的事件,例如 `push` 或 `pull_request`
673 381
674<h3 id="authentication-errors">382<h3 id="authentication-errors">
675 身份驗證錯誤383 身份驗證錯誤
676</h3>384</h3>
677 385
678確認 API 金鑰有效且具有足夠的權限。對於 Amazon Bedrock 或 Google Cloud 的 Agent Platform,檢查認證設定並確保密鑰在工作流程中命名正確。386* 透過在本地使用 `claude` 測試 API 金鑰或 OAuth 令牌來確認它有效,然後再偵錯工作流程
387* 對於 Bedrock、Agent Platform 和 Foundry,請參閱雲端提供者頁面的[故障排除部分](/docs/zh-TW/github-actions-cloud-providers#troubleshooting)
388
389如需更多解決方案,請參閱 Claude Code GitHub Action 的 [FAQ](https://github.com/anthropics/claude-code-action/blob/main/docs/faq.md)。
679 390
680<h2 id="advanced-configuration">391<h2 id="advanced-configuration">
681 進階設定392 進階設定
685 Action 參數396 Action 參數
686</h3>397</h3>
687 398
688Claude Code Action v1 使用簡化的設定:399這些是最常用的輸入。每個都對應於 `anthropics/claude-code-action` 步驟中的 `with:` 金鑰。
689 400
690| 參數 | 描述 | 必需 |401| 參數 | 描述 | 必需 |
691| --------------------- | ----------------------------------------------- | ----- |402| ------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
692| `prompt` | Claude 的指令(純文字或 [skill](/zh-TW/skills) 名稱) | 否\* |403| `prompt` | Claude 的指令,作為純文字或[技能](/docs/zh-TW/skills)調用。省略時,Claude 改為回應[觸發短語](#interactive-and-automation-modes) | 否 |
693| `claude_args` | 傳遞給 Claude Code 的 CLI 引數 | 否 |404| `claude_args` | 傳遞給 Claude Code 的 CLI 引數 | 否 |
694| `plugin_marketplaces` | 以換行符分隔的 plugin marketplace Git URL 清單 | 否 |405| `anthropic_api_key` | Claude API 金鑰 | 對於 Claude API,除非您使用 `claude_code_oauth_token` 或[工作負載身份聯盟](#set-up-for-an-organization)。不用於 Bedrock、Agent Platform 或 Foundry |
695| `plugins` | 以換行符分隔的 plugin 名稱清單,在執行前安裝 | 否 |406| `claude_code_oauth_token` | 用於使用 Claude 訂閱進行身份驗證的 OAuth 令牌,使用 `claude setup-token` 生成 | 否 |
696| `anthropic_api_key` | Claude API 金鑰 | 是\*\* |407| `github_token` | 用於 GitHub 操作的令牌。省略時,Claude Code GitHub Action 作為 Claude GitHub App 進行身份驗證 | 否 |
697| `github_token` | 用於 API 存取的 GitHub 令牌 | 否 |408| `plugin_marketplaces` | 以換行符分隔的外掛程式市場 Git URL 清單 | 否 |
698| `trigger_phrase` | 自訂觸發短語(預設:「@claude」) | 否 |409| `plugins` | 以換行符分隔的要在執行前安裝的外掛程式名稱清單 | 否 |
410| `settings` | Claude Code 設定,作為 JSON 字串或設定 JSON 檔案的路徑 | 否 |
411| `trigger_phrase` | Claude 回應的觸發短語。預設:`@claude` | 否 |
699| `use_bedrock` | 使用 Amazon Bedrock 而不是 Claude API | 否 |412| `use_bedrock` | 使用 Amazon Bedrock 而不是 Claude API | 否 |
700| `use_vertex` | 使用 Google Cloud 的 Agent Platform 而不是 Claude API | 否 |413| `use_vertex` | 使用 Google Cloud 的 Agent Platform 而不是 Claude API | 否 |
414| `use_foundry` | 使用 Microsoft Foundry 而不是 Claude API | 否 |
701 415
702\*提示是可選的 - 當在議題/PR 評論中省略時,Claude 回應觸發短語\416如需完整輸入清單,請參閱 Claude Code GitHub Action 的[設定參考](https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md#inputs)。
703\*\*對於直接 Claude API 是必需的,對於 Amazon Bedrock 或 Google Cloud 的 Agent Platform 不是必需的
704 417
705<h4 id="pass-cli-arguments">418<h3 id="pass-cli-arguments">
706 傳遞 CLI 引數419 傳遞 CLI 引數
707</h4>420</h3>
708 421
709`claude_args` 參數接受任何 Claude Code CLI 引數:422`claude_args` 參數接受任何 [Claude Code CLI 引數](/docs/zh-TW/cli-reference):
710 423
711```yaml theme={null}424```yaml theme={null}
712claude_args: "--max-turns 5 --model claude-sonnet-5 --mcp-config /path/to/config.json"425claude_args: "--max-turns 5 --model claude-sonnet-5 --mcp-config /path/to/config.json"
714 427
715常見引數:428常見引數:
716 429
717* `--max-turns`:最大對話輪數(預設:10)430* `--max-turns`:限制對話輪數
718* `--model`:要使用的模型(例如 `claude-sonnet-5`)431* `--model`:要使用的模型,例如 `claude-sonnet-5`。沒有此引數,Claude Code GitHub Action 使用 Claude Code [預設模型](/docs/zh-TW/model-config)
719* `--mcp-config`:MCP 設定的路徑432* `--mcp-config`:[MCP 設定](/docs/zh-TW/mcp)的路徑
720* `--allowedTools`:允許的工具的逗號分隔清單。`--allowed-tools` 別名也可以使用。433* `--allowedTools`:允許的工具的逗號分隔清單。`--allowed-tools` 別名也可以使用
721* `--debug`:啟用偵錯輸出434* `--debug`:啟用偵錯輸出
722 435
723<h3 id="alternative-integration-methods">436<h2 id="upgrade-from-beta">
724 替代整合方法437 從 Beta 升級
725</h3>438</h2>
726
727雖然 `/install-github-app` 命令是推薦的方法,但您也可以:
728
729* **自訂 GitHub App**:對於需要品牌使用者名稱或自訂身份驗證流程的組織。建立您自己的 GitHub App,具有所需的權限(contents、issues、pull requests),並使用 actions/create-github-app-token action 在您的工作流程中產生令牌。
730* **手動 GitHub Actions**:直接工作流程設定以獲得最大靈活性
731* **MCP 設定**:Model Context Protocol 伺服器的動態載入
732 439
733請參閱 [Claude Code Action 文件](https://github.com/anthropics/claude-code-action/blob/main/docs)以取得有關身份驗證、安全性和進階設定的詳細指南。440如果您的工作流程仍然參考 `anthropics/claude-code-action@beta`,請將它們更新為 v1:
734 441
735<h3 id="customizing-claude’s-behavior">4421. 在 `uses` 行中將 `@beta` 變更為 `@v1`
736 自訂 Claude 的行為4432. 移除 `mode` 輸入,因為 Claude Code GitHub Action 現在[自動偵測模式](#interactive-and-automation-modes)
737</h3>4443. 將 `direct_prompt` 替換為 `prompt`
4454. 將 CLI 選項(例如 `max_turns` 和 `model`)移動到 `claude_args`。`custom_instructions` 沒有同名標誌,變成 `--append-system-prompt`
738 446
739您可以透過兩種方式自訂 Claude 的行為:447如需完整的輸入對應和前後範例,請參閱[遷移指南](https://github.com/anthropics/claude-code-action/blob/main/docs/migration-guide.md)。
740 448
7411. **CLAUDE.md**:在您的儲存庫根目錄中的 `CLAUDE.md` 檔案中定義編碼標準、審查標準和專案特定規則。Claude 在建立 PR 和回應請求時將遵循這些指南。請查看我們的 [Memory 文件](/zh-TW/memory)以取得更多詳細資訊。449<h2 id="what’s-next">
7422. **自訂提示**:在工作流程檔案中使用 `prompt` 參數來提供工作流程特定的指令。這允許您為不同的工作流程或任務自訂 Claude 的行為。450 接下來
451</h2>
743 452
744Claude 在建立 PR 和回應請求時將遵循這些指南。453* [使用 Claude Code GitHub Actions 與雲端提供者](/docs/zh-TW/github-actions-cloud-providers):透過 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 路由推理
454* [設定參考](https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md#inputs):完整的 action 輸入清單
455* [Examples 目錄](https://github.com/anthropics/claude-code-action/tree/main/examples):更多情境的現成工作流程
456* [Code Review](/docs/zh-TW/code-review):自動 pull request 審查,無需維護工作流程檔案