Claude Code 平台集成
Claude Code 平台集成
GitHub Actions 集成
9 分钟阅读
Claude Code GitHub Actions
了解如何通过 Claude Code GitHub Actions 将 Claude Code 集成到您的开发工作流中
Claude Code GitHub Actions 为您的 GitHub 工作流带来 AI 驱动的自动化。只需在 PR 或 issue 中简单 @claude 提及,Claude 即可分析您的代码、创建拉取请求、实现功能并修复错误——同时遵循您项目的标准。如需在每次 PR 上自动发布无需触发器的审查,请参阅 GitHub 代码审查。
Claude Code GitHub Actions 构建于 Claude Agent SDK 之上,支持将 Claude Code 以编程方式集成到您的应用程序中。您可以使用 SDK 构建 GitHub Actions 之外的自定义自动化工作流。
为何使用 Claude Code GitHub Actions?
- 即时创建 PR:描述您的需求,Claude 即可创建包含所有必要更改的完整 PR
- 自动化代码实现:通过单一命令将 issue 转化为可运行的代码
- 遵循您的标准:Claude 尊重您的
CLAUDE.md指南和现有代码模式 - 简单设置:通过我们的安装程序和 API 密钥,几分钟内即可开始使用
- 默认安全:您的代码保留在 GitHub 的运行器上
Claude 能做什么?
Claude Code 提供强大的 GitHub Action,彻底改变您处理代码的方式:
Claude Code Action
此 GitHub Action 允许您在 GitHub Actions 工作流中运行 Claude Code。您可以基于 Claude Code 构建任何自定义工作流。
设置
快速设置
在 Claude Code 终端中运行 /install-github-app 以交互方式设置集成。该命令会在您的仓库上安装 Claude GitHub App,然后引导您添加 GitHub Actions 工作流和 API 密钥密钥。
GitHub App 安装后,命令会询问是否继续 GitHub Actions 设置。在 Claude Code v2.1.187 及更高版本中,您可以选择暂时跳过,仅完成 App 安装,之后再次运行 /install-github-app 返回工作流和密钥步骤。早期版本会直接继续工作流选择。
- 您必须是仓库管理员才能安装 GitHub App 和添加密钥
- GitHub App 将请求 Contents、Issues 和 Pull requests 的读写权限
- 此快速入门方法仅适用于直接使用 Claude API 的用户。如果您使用 Amazon Bedrock 或 Google Cloud 的 Agent Platform,请参阅与 Amazon Bedrock 和 Google Cloud 配合使用部分。
手动设置
如果 /install-github-app 命令失败或您偏好手动设置,请按照以下手动设置说明操作:
-
将 Claude GitHub App 安装到您的仓库:https://github.com/apps/claude
Claude GitHub App 需要以下仓库权限:
- Contents:读写(用于修改仓库文件)
- Issues:读写(用于响应 issue)
- Pull requests:读写(用于创建 PR 和推送更改)
有关安全和权限的更多详情,请参阅 安全文档。
-
将 ANTHROPIC_API_KEY 添加到您的仓库密钥(了解如何在 GitHub Actions 中使用密钥)
-
将工作流文件从 examples/claude.yml 复制到您仓库的
.github/workflows/目录
从 Beta 版升级
如果您当前正在使用 Claude Code GitHub Actions 的 Beta 版本,我们建议您更新工作流以使用 GA 版本。新版本简化了配置,同时添加了强大的新功能,如自动模式检测。
必要变更
所有 Beta 用户必须对其工作流文件进行以下更改才能升级:
- 更新 Action 版本:将
@beta改为@v1 - 移除模式配置:删除
mode: "tag"或mode: "agent"(现在自动检测) - 更新 prompt 输入:将
direct_prompt替换为prompt - 迁移 CLI 选项:将
max_turns、model、custom_instructions等转换为claude_args
破坏性变更参考
| 旧 Beta 输入 | 新 v1.0 输入 |
|---|---|
mode | (已移除 - 自动检测) |
direct_prompt | prompt |
override_prompt | 使用 GitHub 变量的 prompt |
custom_instructions | claude_args: --append-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 版本:
GA 版本 (v1.0):
使用示例
Claude Code GitHub Actions 可以帮助您完成各种任务。examples 目录包含适用于不同场景的现成工作流。
基础工作流
使用技能
prompt 输入接受 skill 调用以及纯文本:
- 对于仓库
.claude/skills/目录中的技能,在 Action 步骤前运行actions/checkout并传递/skill-name。 - 对于打包在插件中的技能,使用
plugin_marketplaces和plugins输入安装插件,并传递命名空间的/plugin-name:skill-name。
以下工作流安装 code-review 插件,并在每个新建或更新的拉取请求上运行其技能:
使用 Prompt 的自定义自动化
常见使用场景
在 issue 或 PR 评论中:
Claude 将自动分析上下文并做出适当响应。
最佳实践
CLAUDE.md 配置
在仓库根目录创建 CLAUDE.md 文件,以定义代码风格指南、审查标准、项目特定规则和首选模式。此文件指导 Claude 理解您的项目标准。
安全注意事项
有关权限、身份验证和最佳实践的全面安全指南,请参阅 Claude Code Action 安全文档。
始终使用 GitHub Secrets 存储 API 密钥:
- 将您的 API 密钥添加为名为
ANTHROPIC_API_KEY的仓库密钥 - 在工作流中引用:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} - 将 Action 权限限制为仅必要的范围
- 合并前审查 Claude 的建议
始终使用 GitHub Secrets(例如 ${{ secrets.ANTHROPIC_API_KEY }}),而非直接在工作流文件中硬编码 API 密钥。
优化性能
使用 issue 模板提供上下文,保持 CLAUDE.md 简洁聚焦,并为您的工作流配置适当的超时时间。
CI 成本
使用 Claude Code GitHub Actions 时,请注意相关成本:
GitHub Actions 成本:
- Claude Code 在 GitHub 托管的运行器上运行,会消耗您的 GitHub Actions 分钟数
- 有关详细定价和分钟数限制,请参阅 GitHub 计费文档
API 成本:
- 每次 Claude 交互根据 prompt 和响应的长度消耗 API token
- Token 使用量因任务复杂度和代码库大小而异
- 有关当前 token 费率,请参阅 Claude 定价页面
成本优化建议:
- 使用特定的
@claude命令减少不必要的 API 调用 - 在
claude_args中配置适当的--max-turns以防止过度迭代 - 设置工作流级别的超时以避免失控作业
- 考虑使用 GitHub 的并发控制来限制并行运行
配置示例
Claude Code Action v1 通过统一参数简化了配置:
主要特性:
- 统一的 prompt 接口 - 对所有指令使用
prompt - 技能 - 直接从 prompt 调用已安装的 skills
- CLI 透传 - 通过
claude_args传递任何 Claude Code CLI 参数 - 灵活的触发器 - 适用于任何 GitHub 事件
访问 examples 目录 获取完整的工作流文件。
与 Amazon Bedrock 和 Google Cloud 配合使用
对于企业环境,您可以将 Claude Code GitHub Actions 与自有云基础设施配合使用。这种方式让您在保持相同功能的同时,控制数据驻留和计费。
前提条件
在设置 Claude Code GitHub Actions 与云提供商之前,您需要:
对于 Google Cloud 的 Agent Platform:
- 启用了 Google Cloud 的 Agent Platform 的 Google Cloud 项目
- 为 GitHub Actions 配置了 Workload Identity Federation
- 具有所需权限的服务账号
- GitHub App(推荐)或使用默认的 GITHUB_TOKEN
对于 Amazon Bedrock:
- 启用了 Amazon Bedrock 的 AWS 账户
- 在 AWS 中配置了 GitHub OIDC Identity Provider
- 具有 Amazon Bedrock 权限的 IAM 角色
- GitHub App(推荐)或使用默认的 GITHUB_TOKEN
创建自定义 GitHub App(推荐用于第三方提供商)
为了在使用 Google Cloud 的 Agent Platform 或 Amazon Bedrock 等第三方提供商时获得最佳控制和安全性,我们建议您创建自己的 GitHub App:
- 前往 https://github.com/settings/apps/new
- 填写基本信息:
- GitHub App name:选择一个唯一名称(例如 "YourOrg Claude Assistant")
- Homepage URL:您组织的网站或仓库 URL
- 配置应用设置:
- Webhooks:取消勾选 "Active"(此集成不需要)
- 设置所需权限:
- Repository permissions:
- Contents:Read & Write
- Issues:Read & Write
- Pull requests:Read & Write
- Repository permissions:
- 点击 "Create GitHub App"
- 创建后,点击 "Generate a private key" 并保存下载的
.pem文件 - 在应用设置页面记下您的 App ID
- 将应用安装到您的仓库:
- 从应用设置页面,点击左侧边栏的 "Install App"
- 选择您的账户或组织
- 选择 "Only select repositories" 并选择特定仓库
- 点击 "Install"
- 将私钥作为密钥添加到您的仓库:
- 前往仓库的 Settings → Secrets and variables → Actions
- 创建一个名为
APP_PRIVATE_KEY的新密钥,内容为.pem文件
- 将 App ID 作为密钥添加:
- 创建一个名为
APP_ID的新密钥,值为您的 GitHub App ID
此应用将与 actions/create-github-app-token Action 配合使用,在您的的工作流中生成身份验证令牌。
Claude API 替代方案或如果您不想设置自己的 GitHub App:使用官方 Anthropic 应用:
- 从 https://github.com/apps/claude 安装
- 无需额外的身份验证配置
配置云提供商身份验证
选择您的云提供商并设置安全身份验证:
Amazon Bedrock
Amazon Bedrock
配置 AWS 以允许 GitHub Actions 安全地进行身份验证,无需存储凭证。
安全提示:使用仓库特定的配置,并仅授予最低所需权限。
所需设置:
-
启用 Amazon Bedrock:
- 请求访问 Amazon Bedrock 中的 Claude 模型
- 对于跨区域模型,在所有所需区域请求访问
-
设置 GitHub OIDC Identity Provider:
- Provider URL:
https://token.actions.githubusercontent.com - Audience:
sts.amazonaws.com
- Provider URL:
-
为 GitHub Actions 创建 IAM 角色:
- Trusted entity type:Web identity
- Identity provider:
token.actions.githubusercontent.com - Permissions:
AmazonBedrockFullAccess策略 - 为您的特定仓库配置信任策略
所需值:
设置完成后,您需要:
- AWS_ROLE_TO_ASSUME:您创建的 IAM 角色的 ARN
有关详细的 OIDC 设置说明,请参阅 AWS 文档。
Google Cloud 的 Agent Platform
Google Cloud 的 Agent Platform
配置 Google Cloud 以允许 GitHub Actions 安全地进行身份验证,无需存储凭证。
安全提示:使用仓库特定的配置,并仅授予最低所需权限。
所需设置:
-
在您的 Google Cloud 项目中启用 API:
- IAM Credentials API
- Security Token Service (STS) API
- Google Cloud 的 Agent Platform API
-
创建 Workload Identity Federation 资源:
- 创建 Workload Identity Pool
- 添加 GitHub OIDC 提供商:
- Issuer:
https://token.actions.githubusercontent.com - 仓库和所有者的属性映射
- 安全建议:使用仓库特定的属性条件
- Issuer:
-
创建服务账号:
- 仅授予
Vertex AI User角色 - 安全建议:为每个仓库创建专用服务账号
- 仅授予
-
配置 IAM 绑定:
- 允许 Workload Identity Pool 模拟服务账号
- 安全建议:使用仓库特定的 principal sets
所需值:
设置完成后,您需要:
- GCP_WORKLOAD_IDENTITY_PROVIDER:完整的提供商资源名称
- GCP_SERVICE_ACCOUNT:服务账号电子邮件地址
有关详细的设置说明,请参阅 Google Cloud Workload Identity Federation 文档。
添加所需密钥
将以下密钥添加到您的仓库(Settings → Secrets and variables → Actions):
对于 Claude API(直接):
-
用于 API 身份验证:
ANTHROPIC_API_KEY:来自 console.anthropic.com 的 Claude API 密钥
-
用于 GitHub App(如果使用自己的应用):
APP_ID:您的 GitHub App IDAPP_PRIVATE_KEY:私钥 (.pem) 内容
对于 Google Cloud 的 Agent Platform
-
用于 GCP 身份验证:
GCP_WORKLOAD_IDENTITY_PROVIDERGCP_SERVICE_ACCOUNT
-
用于 GitHub App(如果使用自己的应用):
APP_ID:您的 GitHub App IDAPP_PRIVATE_KEY:私钥 (.pem) 内容
对于 Amazon Bedrock
-
用于 AWS 身份验证:
AWS_ROLE_TO_ASSUME
-
用于 GitHub App(如果使用自己的应用):
APP_ID:您的 GitHub App IDAPP_PRIVATE_KEY:私钥 (.pem) 内容
创建工作流文件
创建与您的云提供商集成的 GitHub Actions 工作流文件。以下示例展示了 Amazon Bedrock 和 Google Cloud 的 Agent Platform 的完整配置:
Amazon Bedrock 工作流
Amazon Bedrock 工作流
前提条件:
- 已启用 Amazon Bedrock 访问并具有 Claude 模型权限
- GitHub 在 AWS 中配置为 OIDC 身份提供商
- 具有 Amazon Bedrock 权限且信任 GitHub Actions 的 IAM 角色
所需的 GitHub 密钥:
| Secret Name | Description |
|---|---|
AWS_ROLE_TO_ASSUME | 用于 Amazon Bedrock 访问的 IAM 角色 ARN |
APP_ID | 您的 GitHub App ID(来自应用设置) |
APP_PRIVATE_KEY | 为您的 GitHub App 生成的私钥 |
Google Cloud 的 Agent Platform 工作流
Google Cloud 的 Agent Platform 工作流
前提条件:
- 在您的 GCP 项目中启用了 Google Cloud 的 Agent Platform API
- 为 GitHub 配置了 Workload Identity Federation
- 具有 Google Cloud 的 Agent Platform 权限的服务账号
所需的 GitHub 密钥:
| Secret Name | Description |
|---|---|
GCP_WORKLOAD_IDENTITY_PROVIDER | Workload Identity Provider 资源名称 |
GCP_SERVICE_ACCOUNT | 具有 Google Cloud 的 Agent Platform 访问权限的服务账号电子邮件 |
APP_ID | 您的 GitHub App ID(来自应用设置) |
APP_PRIVATE_KEY | 为您的 GitHub App 生成的私钥 |
故障排查
Claude 不响应 @claude 命令
验证 GitHub App 是否正确安装,检查工作流是否已启用,确保 API 密钥已设置在仓库密钥中,并确认评论包含 @claude(而非 /claude)。
CI 不在 Claude 的提交上运行
确保您使用的是 GitHub App 或自定义应用(而非 Actions 用户),检查工作流触发器是否包含必要的事件,并验证应用权限是否包含 CI 触发器。
身份验证错误
确认 API 密钥有效且具有足够的权限。对于 Amazon Bedrock 或 Google Cloud 的 Agent Platform,检查凭证配置并确保工作流中的密钥名称正确。
高级配置
Action 参数
Claude Code Action v1 使用简化的配置:
| Parameter | Description | Required |
|---|---|---|
prompt | Claude 的指令(纯文本或 skill 名称) | No* |
claude_args | 传递给 Claude Code 的 CLI 参数 | No |
plugin_marketplaces | 插件市场 Git URL 的换行分隔列表 | No |
plugins | 执行前安装的插件名称的换行分隔列表 | No |
anthropic_api_key | Claude API 密钥 | Yes** |
github_token | 用于 API 访问的 GitHub 令牌 | No |
trigger_phrase | 自定义触发短语(默认:"@claude") | No |
use_bedrock | 使用 Amazon Bedrock 替代 Claude API | No |
use_vertex | 使用 Google Cloud 的 Agent Platform 替代 Claude API | No |
*Prompt 是可选的 - 对于 issue/PR 评论,省略时 Claude 会响应触发短语
**直接 Claude API 需要,Amazon Bedrock 或 Google Cloud 的 Agent Platform 不需要
传递 CLI 参数
claude_args 参数接受任何 Claude Code CLI 参数:
常用参数:
--max-turns:最大对话轮数(默认:10)--model:使用的模型(例如claude-sonnet-5)--mcp-config:MCP 配置路径--allowedTools:允许的工具列表,逗号分隔。--allowed-tools别名同样有效。--debug:启用调试输出
替代集成方法
虽然 /install-github-app 命令是推荐的方法,但您也可以:
- 自定义 GitHub App:对于需要品牌用户名或自定义身份验证流的组织。创建具有所需权限(contents、issues、pull requests)的自己的 GitHub App,并在工作流中使用 actions/create-github-app-token Action 生成令牌。
- 手动 GitHub Actions:直接配置工作流以获得最大灵活性
- MCP 配置:动态加载 Model Context Protocol 服务器
有关身份验证、安全和高级配置的详细指南,请参阅 Claude Code Action 文档。
自定义 Claude 的行为
您可以通过两种方式配置 Claude 的行为:
- CLAUDE.md:在仓库根目录定义编码标准、审查标准和项目特定规则。Claude 在创建 PR 和响应请求时将遵循这些指南。有关更多详情,请参阅我们的 Memory 文档。
- 自定义 prompts:使用工作流文件中的
prompt参数提供工作流特定的指令。这允许您为不同的工作流或任务自定义 Claude 的行为。
Claude 在创建 PR 和响应请求时将遵循这些指南。