GitHub Actions
將 Claude Code 與您的 GitHub 工作流程整合,實現自動化程式碼審查、PR 管理和問題分類。
Claude Code GitHub Actions 為您的 GitHub 工作流程帶來 AI 驅動的自動化。只需在任何 PR 或問題中簡單地提及 @claude
,Claude 就能分析您的程式碼、創建拉取請求、實現功能並修復錯誤 - 同時遵循您專案的標準。
Claude Code GitHub Actions 目前處於測試階段。隨著我們完善使用體驗,功能和特性可能會有所變化。
Claude Code GitHub Actions 建立在 Claude Code SDK 之上,該 SDK 可將 Claude Code 以程式化方式整合到您的應用程式中。您可以使用該 SDK 構建超越 GitHub Actions 的自定義自動化工作流程。
為什麼使用 Claude Code GitHub Actions?
- 即時 PR 創建:描述您的需求,Claude 會創建一個包含所有必要更改的完整 PR
- 自動化程式碼實現:只需一個命令即可將問題轉化為可運行的程式碼
- 遵循您的標準:Claude 尊重您的
CLAUDE.md
指南和現有程式碼模式 - 簡單設置:通過我們的安裝程式和 API 密鑰,幾分鐘內即可開始使用
- 預設安全:您的程式碼保留在 Github 的執行器上
Claude 能做什麼?
Claude Code 提供強大的 GitHub Actions,改變您處理程式碼的方式:
Claude Code Action
這個 GitHub Action 允許您在 GitHub Actions 工作流程中運行 Claude Code。您可以使用它在 Claude Code 之上構建任何自定義工作流程。
Claude Code Action (Base)
用於使用 Claude 構建自定義 GitHub 工作流程的基礎。這個可擴展框架讓您完全訪問 Claude 的功能,以創建量身定制的自動化。
快速開始
設置此 action 的最簡單方法是通過終端機中的 Claude Code。只需打開 claude 並運行 /install-github-app
。
此命令將指導您完成 GitHub 應用程式和所需密鑰的設置。
- 您必須是儲存庫管理員才能安裝 GitHub 應用程式並添加密鑰
- 此快速開始方法僅適用於直接使用 Anthropic API 的用戶。如果您使用的是 AWS Bedrock 或 Google Vertex AI,請參閱 與 AWS Bedrock 和 Google Vertex AI 一起使用 部分。
如果設置腳本失敗
如果 /install-github-app
命令失敗或您更喜歡手動設置,請按照以下手動設置說明操作:
- 安裝 Claude GitHub 應用程式到您的儲存庫:https://github.com/apps/claude
- 將 ANTHROPIC_API_KEY 添加到您的儲存庫密鑰中(了解如何在 GitHub Actions 中使用密鑰)
- 複製工作流程文件,從 examples/claude.yml 到您儲存庫的
.github/workflows/
測試 action
完成快速開始或手動設置後,通過在問題或 PR 評論中標記 @claude
來測試 action!
使用案例示例
Claude Code GitHub Actions 可以幫助您完成各種任務。有關完整的工作示例,請參閱 examples 目錄。
將問題轉化為 PR
Claude 將分析問題,編寫程式碼,並建立 PR 供審查。
獲取實現幫助
Claude 將分析您的程式碼並提供具體的實現指導。
快速修復錯誤
Claude 將定位錯誤,實現修復,並建立 PR。
最佳實踐
CLAUDE.md 配置
在您的儲存庫根目錄創建一個 CLAUDE.md
文件,定義程式碼風格指南、審查標準、項目特定規則和首選模式。此文件指導 Claude 理解您的項目標準。
安全考慮
⚠️ 重要:永遠不要將 API 密鑰直接提交到您的儲存庫!
始終使用 GitHub Secrets 存儲 API 密鑰:
- 將您的 API 密鑰添加為名為
ANTHROPIC_API_KEY
的儲存庫密鑰 - 在工作流程中引用它:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
- 將 action 權限限制為僅必要的內容
- 在合併前審查 Claude 的建議
始終使用 GitHub Secrets(例如 ${{ secrets.ANTHROPIC_API_KEY }}
)而不是在工作流程文件中直接硬編碼 API 密鑰。
優化性能
使用問題模板提供上下文,保持您的 CLAUDE.md
簡潔明了,並為您的工作流程配置適當的超時時間。
CI 成本
使用 Claude Code GitHub Actions 時,請注意相關成本:
GitHub Actions 成本:
- Claude Code 在 GitHub 託管的執行器上運行,這會消耗您的 GitHub Actions 分鐘數
- 有關詳細定價和分鐘限制,請參閱 GitHub 的計費文檔
API 成本:
- 每次 Claude 互動都會根據提示和回應的長度消耗 API 令牌
- 令牌使用量因任務複雜性和程式碼庫大小而異
- 有關當前令牌費率,請參閱 Claude 的定價頁面
成本優化提示:
- 使用特定的
@claude
命令減少不必要的 API 調用 - 配置適當的
max_turns
限制,防止過度迭代 - 設置合理的
timeout_minutes
以避免失控的工作流程 - 考慮使用 GitHub 的並發控制來限制並行運行
配置示例
有關不同用例的現成工作流程配置,包括:
- 用於問題和 PR 評論的基本工作流程設置
- 拉取請求上的自動化程式碼審查
- 針對特定需求的自定義實現
訪問 Claude Code Action 儲存庫中的 examples 目錄。
示例儲存庫包含完整、經過測試的工作流程,您可以直接複製到您的 .github/workflows/
目錄中。
與 AWS Bedrock 和 Google Vertex AI 一起使用
對於企業環境,您可以將 Claude Code GitHub Actions 與您自己的雲基礎設施一起使用。這種方法讓您可以控制數據駐留和計費,同時保持相同的功能。
先決條件
在使用雲提供商設置 Claude Code GitHub Actions 之前,您需要:
對於 Google Cloud Vertex AI:
- 啟用了 Vertex AI 的 Google Cloud 項目
- 為 GitHub Actions 配置的工作負載身份聯合
- 具有所需權限的服務帳戶
- GitHub 應用程式(推薦)或使用默認的 GITHUB_TOKEN
對於 AWS Bedrock:
- 啟用了 Amazon Bedrock 的 AWS 帳戶
- 在 AWS 中配置的 GitHub OIDC 身份提供商
- 具有 Bedrock 權限的 IAM 角色
- GitHub 應用程式(推薦)或使用默認的 GITHUB_TOKEN
創建自定義 GitHub 應用程式(推薦用於第三方提供商)
為了在使用 Vertex AI 或 Bedrock 等第三方提供商時獲得最佳控制和安全性,我們建議創建您自己的 GitHub 應用程式:
- 前往 https://github.com/settings/apps/new
- 填寫基本信息:
- GitHub 應用程式名稱:選擇一個唯一的名稱(例如,“YourOrg Claude Assistant”)
- 主頁 URL:您組織的網站或儲存庫 URL
- 配置應用程式設置:
- Webhooks:取消勾選”Active”(此集成不需要)
- 設置所需權限:
- 儲存庫權限:
- Contents:讀取和寫入
- Issues:讀取和寫入
- Pull requests:讀取和寫入
- 儲存庫權限:
- 點擊”創建 GitHub 應用程式”
- 創建後,點擊”生成私鑰”並保存下載的
.pem
文件 - 記下應用程式設置頁面中的應用程式 ID
- 將應用程式安裝到您的儲存庫:
- 從您的應用程式設置頁面,點擊左側欄中的”安裝應用程式”
- 選擇您的帳戶或組織
- 選擇”僅選擇儲存庫”並選擇特定儲存庫
- 點擊”安裝”
- 將私鑰添加為儲存庫的密鑰:
- 前往您儲存庫的 Settings → Secrets and variables → Actions
- 創建一個名為
APP_PRIVATE_KEY
的新密鑰,內容為.pem
文件的內容
- 將應用程式 ID 添加為密鑰:
- 創建一個名為
APP_ID
的新密鑰,內容為您 GitHub 應用程式的 ID
此應用程式將與 actions/create-github-app-token action 一起使用,在您的工作流程中生成認證令牌。
Anthropic API 的替代方案或如果您不想設置自己的 Github 應用程式:使用官方 Anthropic 應用程式:
- 從以下網址安裝:https://github.com/apps/claude
- 認證不需要額外配置
配置雲提供商認證
選擇您的雲提供商並設置安全認證:
添加所需密鑰
將以下密鑰添加到您的儲存庫(Settings → Secrets and variables → Actions):
對於 Anthropic API(直接):
-
用於 API 認證:
ANTHROPIC_API_KEY
:您從 console.anthropic.com 獲取的 Anthropic API 密鑰
-
用於 GitHub 應用程式(如果使用您自己的應用程式):
APP_ID
:您的 GitHub 應用程式 IDAPP_PRIVATE_KEY
:私鑰(.pem)內容
對於 Google Cloud Vertex AI
-
用於 GCP 認證:
GCP_WORKLOAD_IDENTITY_PROVIDER
GCP_SERVICE_ACCOUNT
-
用於 GitHub 應用程式(如果使用您自己的應用程式):
APP_ID
:您的 GitHub 應用程式 IDAPP_PRIVATE_KEY
:私鑰(.pem)內容
對於 AWS Bedrock
-
用於 AWS 認證:
AWS_ROLE_TO_ASSUME
-
用於 GitHub 應用程式(如果使用您自己的應用程式):
APP_ID
:您的 GitHub 應用程式 IDAPP_PRIVATE_KEY
:私鑰(.pem)內容
創建工作流程文件
創建與您的雲提供商集成的 GitHub Actions 工作流程文件。以下示例顯示了 AWS Bedrock 和 Google Vertex AI 的完整配置:
故障排除
Claude 不回應 @claude 命令
驗證 GitHub 應用程式是否正確安裝,檢查工作流程是否啟用,確保 API 密鑰已設置在儲存庫密鑰中,並確認評論包含 @claude
(而不是 /claude
)。
CI 不在 Claude 的提交上運行
確保您使用的是 GitHub 應用程式或自定義應用程式(而不是 Actions 用戶),檢查工作流程觸發器是否包含必要的事件,並驗證應用程式權限是否包含 CI 觸發器。
認證錯誤
確認 API 密鑰有效並具有足夠的權限。對於 Bedrock/Vertex,檢查憑證配置並確保密鑰在工作流程中正確命名。
高級配置
Action 參數
Claude Code Action 支持以下關鍵參數:
參數 | 描述 | 必需 |
---|---|---|
prompt | 發送給 Claude 的提示 | 是* |
prompt_file | 包含提示的文件路徑 | 是* |
anthropic_api_key | Anthropic API 密鑰 | 是** |
max_turns | 最大對話回合數 | 否 |
timeout_minutes | 執行超時 | 否 |
*prompt
或 prompt_file
必需其一
**直接使用 Anthropic API 時需要,Bedrock/Vertex 不需要
替代集成方法
雖然 /install-github-app
命令是推薦的方法,但您也可以:
- 自定義 GitHub 應用程式:對於需要品牌用戶名或自定義認證流程的組織。創建您自己的具有所需權限(內容、問題、拉取請求)的 GitHub 應用程式,並使用 actions/create-github-app-token action 在您的工作流程中生成令牌。
- 手動 GitHub Actions:直接工作流程配置,提供最大靈活性
- MCP 配置:動態加載模型上下文協議服務器
有關詳細文檔,請參閱 Claude Code Action 儲存庫。
自定義 Claude 的行為
您可以通過兩種方式配置 Claude 的行為:
- CLAUDE.md:在您儲存庫的根目錄定義一個
CLAUDE.md
文件,包含編碼標準、審查標準和項目特定規則。Claude 在創建 PR 和回應請求時將遵循這些指南。查看我們的 Memory 文檔 了解更多詳情。 - 自定義提示:在工作流程文件中使用
prompt
參數提供工作流程特定的指令。這允許您為不同的工作流程或任務自定義 Claude 的行為。
Claude 在創建 PR 和回應請求時將遵循這些指南。