@claude,Claude 就可以分析您的代码、创建拉取请求、实现功能和修复错误 - 所有这些都遵循您项目的标准。
Claude Code GitHub Actions 建立在 Claude Code
SDK 之上,它支持将 Claude Code 以编程方式集成到您的应用程序中。您可以使用 SDK 构建超越 GitHub Actions 的自定义自动化工作流。
为什么使用 Claude Code GitHub Actions?
- 即时 PR 创建:描述您需要什么,Claude 会创建一个包含所有必要更改的完整 PR
- 自动化代码实现:使用单个命令将问题转变为可工作的代码
- 遵循您的标准:Claude 尊重您的
CLAUDE.md指南和现有代码模式 - 简单设置:通过我们的安装程序和 API 密钥在几分钟内开始使用
- 默认安全:您的代码保留在 Github 的运行器上
Claude 可以做什么?
Claude Code 提供了一个强大的 GitHub Action,改变了您处理代码的方式:Claude Code Action
这个 GitHub Action 允许您在 GitHub Actions 工作流中运行 Claude Code。您可以使用它在 Claude Code 之上构建任何自定义工作流。 查看仓库 →设置
快速设置
设置此操作的最简单方法是通过终端中的 Claude Code。只需打开 claude 并运行/install-github-app。
此命令将指导您完成 GitHub 应用和所需密钥的设置。
- 您必须是仓库管理员才能安装 GitHub 应用并添加密钥
- GitHub 应用将请求对内容、问题和拉取请求的读写权限
- 此快速启动方法仅适用于直接 Claude API 用户。如果您使用 AWS Bedrock 或 Google Vertex AI,请参阅 使用 AWS Bedrock 和 Google Vertex AI 部分。
手动设置
如果/install-github-app 命令失败或您更喜欢手动设置,请按照以下手动设置说明进行操作:
-
安装 Claude GitHub 应用到您的仓库:https://github.com/apps/claude
Claude GitHub 应用需要以下仓库权限:
- 内容:读写(修改仓库文件)
- 问题:读写(响应问题)
- 拉取请求:读写(创建 PR 和推送更改)
- 添加 ANTHROPIC_API_KEY 到您的仓库密钥(了解如何在 GitHub Actions 中使用密钥)
-
复制工作流文件从 examples/claude.yml 到您的仓库的
.github/workflows/
完成快速启动或手动设置后,通过在问题或 PR 评论中标记
@claude 来测试该操作!从 Beta 版本升级
Claude Code GitHub Actions v1.0 引入了破坏性更改,需要更新您的工作流文件才能从 beta 版本升级到 v1.0。
基本更改
所有 beta 用户必须对其工作流文件进行这些更改才能升级:- 更新操作版本:将
@beta更改为@v1 - 删除模式配置:删除
mode: "tag"或mode: "agent"(现在自动检测) - 更新提示输入:将
direct_prompt替换为prompt - 移动 CLI 选项:将
max_turns、model、custom_instructions等转换为claude_args
破坏性更改参考
| 旧 Beta 输入 | 新 v1.0 输入 |
|---|---|
mode | (已删除 - 自动检测) |
direct_prompt | prompt |
override_prompt | prompt 带 GitHub 变量 |
custom_instructions | claude_args: --system-prompt |
max_turns | claude_args: --max-turns |
model | claude_args: --model |
allowed_tools | claude_args: --allowedTools |
disallowed_tools | claude_args: --disallowedTools |
claude_env | settings JSON 格式 |
前后对比示例
Beta 版本:该操作现在根据您的配置自动检测是在交互模式(响应
@claude 提及)还是自动化模式(立即使用提示运行)下运行。示例用例
Claude Code GitHub Actions 可以帮助您完成各种任务。示例目录包含适用于不同场景的现成工作流。基本工作流
使用斜杠命令
使用提示的自定义自动化
常见用例
在问题或 PR 评论中:最佳实践
CLAUDE.md 配置
在您的仓库根目录创建一个CLAUDE.md 文件来定义代码风格指南、审查标准、项目特定规则和首选模式。此文件指导 Claude 对您的项目标准的理解。
安全考虑
永远不要直接将 API 密钥提交到您的仓库!
- 将您的 API 密钥添加为名为
ANTHROPIC_API_KEY的仓库密钥 - 在工作流中引用它:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} - 将操作权限限制为仅必要的权限
- 在合并前审查 Claude 的建议
${{ secrets.ANTHROPIC_API_KEY }})而不是直接在工作流文件中硬编码 API 密钥。
优化性能
使用问题模板提供上下文,保持您的CLAUDE.md 简洁且专注,并为您的工作流配置适当的超时。
CI 成本
使用 Claude Code GitHub Actions 时,请注意相关成本: GitHub Actions 成本:- Claude Code 在 GitHub 托管的运行器上运行,这会消耗您的 GitHub Actions 分钟数
- 有关详细的定价和分钟限制,请参阅 GitHub 的计费文档
- 每次 Claude 交互根据提示和响应的长度消耗 API 令牌
- 令牌使用因任务复杂性和代码库大小而异
- 有关当前令牌费率,请参阅 Claude 的定价页面
- 使用特定的
@claude命令来减少不必要的 API 调用 - 在
claude_args中配置适当的--max-turns以防止过度迭代 - 设置工作流级别的超时以避免失控的作业
- 考虑使用 GitHub 的并发控制来限制并行运行
配置示例
Claude Code Action v1 使用统一参数简化了配置:- 统一提示界面 - 对所有指令使用
prompt - 斜杠命令 - 预构建的提示,如
/review或/fix - CLI 传递 - 通过
claude_args的任何 Claude Code CLI 参数 - 灵活的触发器 - 适用于任何 GitHub 事件
当响应问题或 PR 评论时,Claude 自动响应 @claude 提及。对于其他事件,使用
prompt 参数提供指令。使用 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
1
创建自定义 GitHub 应用(推荐用于第三方提供商)
为了在使用 Vertex AI 或 Bedrock 等第三方提供商时获得最佳控制和安全性,我们建议创建您自己的 GitHub 应用:Claude API 的替代方案或如果您不想设置自己的 Github 应用:使用官方 Anthropic 应用:
- 转到 https://github.com/settings/apps/new
- 填写基本信息:
- GitHub 应用名称:选择唯一的名称(例如”YourOrg Claude Assistant”)
- 主页 URL:您的组织网站或仓库 URL
- 配置应用设置:
- Webhooks:取消选中”Active”(此集成不需要)
- 设置所需的权限:
- 仓库权限:
- 内容:读写
- 问题:读写
- 拉取请求:读写
- 仓库权限:
- 点击”创建 GitHub 应用”
- 创建后,点击”生成私钥”并保存下载的
.pem文件 - 从应用设置页面记下您的应用 ID
- 将应用安装到您的仓库:
- 从您的应用设置页面,点击左侧边栏中的”安装应用”
- 选择您的账户或组织
- 选择”仅选择存储库”并选择特定仓库
- 点击”安装”
- 将私钥添加为仓库密钥:
- 转到您的仓库的设置 → 密钥和变量 → 操作
- 创建一个名为
APP_PRIVATE_KEY的新密钥,内容为.pem文件的内容
- 将应用 ID 添加为密钥:
- 创建一个名为
APP_ID的新密钥,值为您的 GitHub 应用的 ID
此应用将与 actions/create-github-app-token 操作一起使用,以在您的工作流中生成身份验证令牌。
- 从以下位置安装:https://github.com/apps/claude
- 无需额外的身份验证配置
2
配置云提供商身份验证
选择您的云提供商并设置安全身份验证:
AWS Bedrock
AWS Bedrock
配置 AWS 以允许 GitHub Actions 安全地进行身份验证,无需存储凭证。有关详细的 OIDC 设置说明,请参阅 AWS 文档。
安全说明:使用特定于仓库的配置并仅授予最少所需的权限。所需设置:
-
启用 Amazon Bedrock:
- 请求在 Amazon Bedrock 中访问 Claude 模型
- 对于跨区域模型,请在所有必需的区域中请求访问
-
设置 GitHub OIDC 身份提供商:
- 提供商 URL:
https://token.actions.githubusercontent.com - 受众:
sts.amazonaws.com
- 提供商 URL:
-
为 GitHub Actions 创建 IAM 角色:
- 受信任的实体类型:Web 身份
- 身份提供商:
token.actions.githubusercontent.com - 权限:
AmazonBedrockFullAccess策略 - 为您的特定仓库配置信任策略
- AWS_ROLE_TO_ASSUME:您创建的 IAM 角色的 ARN
OIDC 比使用静态 AWS 访问密钥更安全,因为凭证是临时的并自动轮换。
Google Vertex AI
Google Vertex AI
配置 Google Cloud 以允许 GitHub Actions 安全地进行身份验证,无需存储凭证。有关详细的设置说明,请参阅 Google Cloud 工作负载身份联合文档。
安全说明:使用特定于仓库的配置并仅授予最少所需的权限。所需设置:
-
在您的 Google Cloud 项目中启用 API:
- IAM 凭证 API
- 安全令牌服务 (STS) API
- Vertex AI API
-
创建工作负载身份联合资源:
- 创建工作负载身份池
- 添加 GitHub OIDC 提供商,具有:
- 发行者:
https://token.actions.githubusercontent.com - 仓库和所有者的属性映射
- 安全建议:使用特定于仓库的属性条件
- 发行者:
-
创建服务账户:
- 仅授予
Vertex AI User角色 - 安全建议:为每个仓库创建专用服务账户
- 仅授予
-
配置 IAM 绑定:
- 允许工作负载身份池模拟服务账户
- 安全建议:使用特定于仓库的主体集
- GCP_WORKLOAD_IDENTITY_PROVIDER:完整的提供商资源名称
- GCP_SERVICE_ACCOUNT:服务账户电子邮件地址
工作负载身份联合消除了对可下载服务账户密钥的需求,提高了安全性。
3
添加所需密钥
将以下密钥添加到您的仓库(设置 → 密钥和变量 → 操作):
对于 Claude API(直接):
-
对于 API 身份验证:
ANTHROPIC_API_KEY:您的 Claude API 密钥来自 console.anthropic.com
-
对于 GitHub 应用(如果使用您自己的应用):
APP_ID:您的 GitHub 应用的 IDAPP_PRIVATE_KEY:私钥 (.pem) 内容
对于 Google Cloud Vertex AI
-
对于 GCP 身份验证:
GCP_WORKLOAD_IDENTITY_PROVIDERGCP_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) 内容
4
创建工作流文件
创建与您的云提供商集成的 GitHub Actions 工作流文件。下面的示例显示了 AWS Bedrock 和 Google Vertex AI 的完整配置:
AWS Bedrock 工作流
AWS Bedrock 工作流
先决条件:
- 启用了 AWS Bedrock 访问权限和 Claude 模型权限
- GitHub 在 AWS 中配置为 OIDC 身份提供商
- 具有 Bedrock 权限的 IAM 角色,信任 GitHub Actions
| 密钥名称 | 描述 |
|---|---|
AWS_ROLE_TO_ASSUME | Bedrock 访问的 IAM 角色的 ARN |
APP_ID | 您的 GitHub 应用 ID(来自应用设置) |
APP_PRIVATE_KEY | 您为 GitHub 应用生成的私钥 |
Bedrock 的模型 ID 格式包括区域前缀(例如
us.anthropic.claude...)和版本后缀。Google Vertex AI 工作流
Google Vertex AI 工作流
先决条件:
- 在您的 GCP 项目中启用了 Vertex AI API
- 为 GitHub 配置的工作负载身份联合
- 具有 Vertex AI 权限的服务账户
| 密钥名称 | 描述 |
|---|---|
GCP_WORKLOAD_IDENTITY_PROVIDER | 工作负载身份提供商资源名称 |
GCP_SERVICE_ACCOUNT | 具有 Vertex AI 访问权限的服务账户电子邮件 |
APP_ID | 您的 GitHub 应用 ID(来自应用设置) |
APP_PRIVATE_KEY | 您为 GitHub 应用生成的私钥 |
项目 ID 从 Google Cloud 身份验证步骤自动检索,因此您无需对其进行硬编码。
故障排除
Claude 不响应 @claude 命令
验证 GitHub 应用是否正确安装,检查工作流是否已启用,确保 API 密钥在仓库密钥中设置,并确认评论包含@claude(不是 /claude)。
CI 不在 Claude 的提交上运行
确保您使用的是 GitHub 应用或自定义应用(不是 Actions 用户),检查工作流触发器是否包括必要的事件,并验证应用权限是否包括 CI 触发器。身份验证错误
确认 API 密钥有效且具有足够的权限。对于 Bedrock/Vertex,检查凭证配置并确保密钥在工作流中命名正确。高级配置
操作参数
Claude Code Action v1 使用简化的配置:| 参数 | 描述 | 必需 |
|---|---|---|
prompt | Claude 的指令(文本或斜杠命令) | 否* |
claude_args | 传递给 Claude Code 的 CLI 参数 | 否 |
anthropic_api_key | Claude API 密钥 | 是** |
github_token | 用于 API 访问的 GitHub 令牌 | 否 |
trigger_phrase | 自定义触发短语(默认:“@claude”) | 否 |
use_bedrock | 使用 AWS Bedrock 而不是 Claude API | 否 |
use_vertex | 使用 Google Vertex AI 而不是 Claude API | 否 |
**对于直接 Claude API 是必需的,对于 Bedrock/Vertex 不是必需的
使用 claude_args
claude_args 参数接受任何 Claude Code CLI 参数:
--max-turns:最大对话轮数(默认:10)--model:要使用的模型(例如claude-sonnet-4-5-20250929)--mcp-config:MCP 配置的路径--allowed-tools:允许的工具的逗号分隔列表--debug:启用调试输出
替代集成方法
虽然/install-github-app 命令是推荐的方法,但您也可以:
- 自定义 GitHub 应用:对于需要品牌用户名或自定义身份验证流的组织。创建您自己的 GitHub 应用,具有所需的权限(内容、问题、拉取请求),并使用 actions/create-github-app-token 操作在工作流中生成令牌。
- 手动 GitHub Actions:直接工作流配置以获得最大灵活性
- MCP 配置:动态加载模型上下文协议服务器
自定义 Claude 的行为
您可以通过两种方式配置 Claude 的行为:- CLAUDE.md:在您的仓库根目录的
CLAUDE.md文件中定义编码标准、审查标准和项目特定规则。Claude 在创建 PR 和响应请求时将遵循这些指南。查看我们的 内存文档 了解更多详情。 - 自定义提示:使用工作流文件中的
prompt参数提供工作流特定的指令。这允许您为不同的工作流或任务自定义 Claude 的行为。