Claude Code GitHub Actions 为您的 GitHub 工作流程带来 AI 驱动的自动化。只需在任何 PR 或 issue 中简单地提及 @claude,Claude 就可以分析您的代码、创建拉取请求、实现功能和修复错误 - 所有这些都遵循您项目的标准。

Claude Code GitHub Actions 基于 Claude Code SDK 构建,该 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。只需打开 claude 并运行 /install-github-app

此命令将指导您设置 GitHub 应用程序和所需的密钥。

  • 您必须是存储库管理员才能安装 GitHub 应用程序和添加密钥 - 此快速入门方法仅适用于直接 Anthropic API 用户。如果 您使用 AWS Bedrock 或 Google Vertex AI,请参阅 与 AWS Bedrock 和 Google Vertex AI 一起使用 部分。

手动设置

如果 /install-github-app 命令失败或您更喜欢手动设置,请按照以下手动设置说明操作:

  1. 将 Claude GitHub 应用程序安装到您的存储库:https://github.com/apps/claude
  2. 将 ANTHROPIC_API_KEY 添加到您的存储库密钥(了解如何在 GitHub Actions 中使用密钥
  3. 复制工作流程文件examples/claude.yml 到您存储库的 .github/workflows/

完成快速入门或手动设置后,通过在 issue 或 PR 评论中标记 @claude 来测试操作!

从 Beta 版升级

Claude Code GitHub Actions v1.0 引入了破坏性更改,需要更新您的工作流程文件才能从 beta 版本升级到 v1.0。

如果您当前正在使用 Claude Code GitHub Actions 的 beta 版本,我们建议您更新工作流程以使用 GA 版本。新版本简化了配置,同时添加了强大的新功能,如自动模式检测。

基本更改

所有 beta 用户必须对其工作流程文件进行这些更改才能升级:

  1. 更新操作版本:将 @beta 更改为 @v1
  2. 删除模式配置:删除 mode: "tag"mode: "agent"(现在自动检测)
  3. 更新提示输入:将 direct_prompt 替换为 prompt
  4. 移动 CLI 选项:将 max_turnsmodelcustom_instructions 等转换为 claude_args

破坏性更改参考

旧 Beta 输入新 v1.0 输入
mode(已删除 - 自动检测)
direct_promptprompt
override_prompt带有 GitHub 变量的 prompt
custom_instructionsclaude_args: --system-prompt
max_turnsclaude_args: --max-turns
modelclaude_args: --model
allowed_toolsclaude_args: --allowedTools
disallowed_toolsclaude_args: --disallowedTools
claude_envsettings JSON 格式

前后示例

Beta 版本:

- uses: anthropics/claude-code-action@beta
  with:
    mode: "tag"
    direct_prompt: "Review this PR for security issues"
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    custom_instructions: "Follow our coding standards"
    max_turns: "10"
    model: "claude-3-5-sonnet-20241022"

GA 版本(v1.0):

- uses: anthropics/claude-code-action@v1
  with:
    prompt: "Review this PR for security issues"
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    claude_args: |
      --system-prompt "Follow our coding standards"
      --max-turns 10
      --model claude-sonnet-4-20250514

该操作现在根据您的配置自动检测是在交互模式(响应 @claude 提及)还是自动化模式(立即使用提示运行)下运行。

示例用例

Claude Code GitHub Actions 可以帮助您处理各种任务。示例目录 包含针对不同场景的即用型工作流程。

基本工作流程

name: Claude Code
on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
jobs:
  claude:
    runs-on: ubuntu-latest
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          # 响应评论中的 @claude 提及

使用斜杠命令

name: Code Review
on:
  pull_request:
    types: [opened, synchronize]
jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: "/review"
          claude_args: "--max-turns 5"

使用提示的自定义自动化

name: Daily Report
on:
  schedule:
    - cron: "0 9 * * *"
jobs:
  report:
    runs-on: ubuntu-latest
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: "Generate a summary of yesterday's commits and open issues"
          claude_args: "--model claude-opus-4-1-20250805"

常见用例

在 issue 或 PR 评论中:

@claude implement this feature based on the issue description
@claude how should I implement user authentication for this endpoint?
@claude fix the TypeError in the user dashboard component

Claude 将自动分析上下文并适当响应。

最佳实践

CLAUDE.md 配置

在您的存储库根目录中创建一个 CLAUDE.md 文件,以定义代码风格指南、审查标准、项目特定规则和首选模式。此文件指导 Claude 理解您的项目标准。

安全考虑

永远不要将 API 密钥直接提交到您的存储库!

始终使用 GitHub Secrets 存储 API 密钥:

  • 将您的 API 密钥添加为名为 ANTHROPIC_API_KEY 的存储库密钥
  • 在工作流程中引用它:anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
  • 将操作权限限制为仅必要的权限
  • 在合并之前审查 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 交互都会根据提示和响应的长度消耗 API 令牌
  • 令牌使用量因任务复杂性和代码库大小而异
  • 有关当前令牌费率,请参阅 Claude 的定价页面

成本优化提示:

  • 使用特定的 @claude 命令来减少不必要的 API 调用
  • claude_args 中配置适当的 --max-turns 以防止过度迭代
  • 设置工作流程级别的超时以避免失控的作业
  • 考虑使用 GitHub 的并发控制来限制并行运行

配置示例

Claude Code Action v1 通过统一参数简化配置:

- uses: anthropics/claude-code-action@v1
  with:
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    prompt: "Your instructions here" # 可选
    claude_args: "--max-turns 5" # 可选 CLI 参数

主要功能:

  • 统一提示接口 - 对所有指令使用 prompt
  • 斜杠命令 - 预构建的提示,如 /review/fix
  • CLI 传递 - 通过 claude_args 传递任何 Claude Code CLI 参数
  • 灵活触发器 - 适用于任何 GitHub 事件

访问 示例目录 获取完整的工作流程文件。

当响应 issue 或 PR 评论时,Claude 自动响应 @claude 提及。对于其他事件,使用 prompt 参数提供指令。

与 AWS Bedrock 和 Google Vertex AI 一起使用

对于企业环境,您可以将 Claude Code GitHub Actions 与您自己的云基础设施一起使用。这种方法让您控制数据驻留和计费,同时保持相同的功能。

先决条件

在使用云提供商设置 Claude Code GitHub Actions 之前,您需要:

对于 Google Cloud Vertex AI:

  1. 启用了 Vertex AI 的 Google Cloud 项目
  2. 为 GitHub Actions 配置的工作负载身份联合
  3. 具有所需权限的服务账户
  4. GitHub 应用程序(推荐)或使用默认的 GITHUB_TOKEN

对于 AWS Bedrock:

  1. 启用了 Amazon Bedrock 的 AWS 账户
  2. 在 AWS 中配置的 GitHub OIDC 身份提供商
  3. 具有 Bedrock 权限的 IAM 角色
  4. GitHub 应用程序(推荐)或使用默认的 GITHUB_TOKEN
1

创建自定义 GitHub 应用程序(推荐用于第三方提供商)

为了在使用 Vertex AI 或 Bedrock 等第三方提供商时获得最佳控制和安全性,我们建议创建您自己的 GitHub 应用程序:

  1. 转到 https://github.com/settings/apps/new
  2. 填写基本信息:
    • GitHub 应用程序名称:选择一个唯一的名称(例如,“YourOrg Claude Assistant”)
    • 主页 URL:您组织的网站或存储库 URL
  3. 配置应用程序设置:
    • Webhooks:取消选中”Active”(此集成不需要)
  4. 设置所需权限:
    • 存储库权限
      • Contents:读取和写入
      • Issues:读取和写入
      • Pull requests:读取和写入
  5. 点击”Create GitHub App”
  6. 创建后,点击”Generate a private key”并保存下载的 .pem 文件
  7. 从应用程序设置页面记下您的应用程序 ID
  8. 将应用程序安装到您的存储库:
    • 从您应用程序的设置页面,点击左侧边栏中的”Install App”
    • 选择您的账户或组织
    • 选择”Only select repositories”并选择特定存储库
    • 点击”Install”
  9. 将私钥作为密钥添加到您的存储库:
    • 转到您存储库的 Settings → Secrets and variables → Actions
    • 创建一个名为 APP_PRIVATE_KEY 的新密钥,内容为 .pem 文件的内容
  10. 将应用程序 ID 作为密钥添加:
  • 创建一个名为 APP_ID 的新密钥,值为您的 GitHub 应用程序 ID

此应用程序将与 actions/create-github-app-token 操作一起使用,在您的工作流程中生成身份验证令牌。

Anthropic API 的替代方案或如果您不想设置自己的 Github 应用程序:使用官方 Anthropic 应用程序:

  1. 从以下位置安装:https://github.com/apps/claude
  2. 身份验证无需额外配置
2

配置云提供商身份验证

选择您的云提供商并设置安全身份验证:

3

添加必需的密钥

将以下密钥添加到您的存储库(Settings → Secrets and variables → Actions):

对于 Anthropic API(直接):

  1. 用于 API 身份验证

  2. 用于 GitHub 应用程序(如果使用您自己的应用程序)

    • APP_ID:您的 GitHub 应用程序 ID
    • APP_PRIVATE_KEY:私钥(.pem)内容

对于 Google Cloud Vertex AI

  1. 用于 GCP 身份验证

    • GCP_WORKLOAD_IDENTITY_PROVIDER
    • GCP_SERVICE_ACCOUNT
  2. 用于 GitHub 应用程序(如果使用您自己的应用程序)

    • APP_ID:您的 GitHub 应用程序 ID
    • APP_PRIVATE_KEY:私钥(.pem)内容

对于 AWS Bedrock

  1. 用于 AWS 身份验证

    • AWS_ROLE_TO_ASSUME
  2. 用于 GitHub 应用程序(如果使用您自己的应用程序)

    • APP_ID:您的 GitHub 应用程序 ID
    • APP_PRIVATE_KEY:私钥(.pem)内容
4

创建工作流程文件

创建与您的云提供商集成的 GitHub Actions 工作流程文件。以下示例显示了 AWS Bedrock 和 Google Vertex AI 的完整配置:

故障排除

Claude 不响应 @claude 命令

验证 GitHub 应用程序是否正确安装,检查工作流程是否已启用,确保 API 密钥在存储库密钥中设置,并确认评论包含 @claude(不是 /claude)。

CI 不在 Claude 的提交上运行

确保您使用的是 GitHub 应用程序或自定义应用程序(不是 Actions 用户),检查工作流程触发器包括必要的事件,并验证应用程序权限包括 CI 触发器。

身份验证错误

确认 API 密钥有效且具有足够的权限。对于 Bedrock/Vertex,检查凭据配置并确保密钥在工作流程中正确命名。

高级配置

操作参数

Claude Code Action v1 使用简化的配置:

参数描述必需
promptClaude 的指令(文本或斜杠命令)否*
claude_args传递给 Claude Code 的 CLI 参数
anthropic_api_keyAnthropic API 密钥是**
github_token用于 API 访问的 GitHub 令牌
trigger_phrase自定义触发短语(默认:“@claude”)
use_bedrock使用 AWS Bedrock 而不是 Anthropic API
use_vertex使用 Google Vertex AI 而不是 Anthropic API

*对于 issue/PR 评论,省略提示时是可选的,Claude 响应触发短语
**对于直接 Anthropic API 是必需的,对于 Bedrock/Vertex 不需要

使用 claude_args

claude_args 参数接受任何 Claude Code CLI 参数:

claude_args: "--max-turns 5 --model claude-sonnet-4-20250514 --mcp-config /path/to/config.json"

常见参数:

  • --max-turns:最大对话轮数(默认:10)
  • --model:要使用的模型(例如,claude-sonnet-4-20250514
  • --mcp-config:MCP 配置的路径
  • --allowed-tools:允许的工具的逗号分隔列表
  • --debug:启用调试输出

替代集成方法

虽然 /install-github-app 命令是推荐的方法,但您也可以:

  • 自定义 GitHub 应用程序:对于需要品牌用户名或自定义身份验证流程的组织。创建您自己的具有所需权限(内容、问题、拉取请求)的 GitHub 应用程序,并使用 actions/create-github-app-token 操作在您的工作流程中生成令牌。
  • 手动 GitHub Actions:直接工作流程配置以获得最大灵活性
  • MCP 配置:模型上下文协议服务器的动态加载

有关详细文档,请参阅 Claude Code Action 存储库

自定义 Claude 的行为

您可以通过两种方式配置 Claude 的行为:

  1. CLAUDE.md:在存储库根目录的 CLAUDE.md 文件中定义编码标准、审查标准和项目特定规则。Claude 在创建 PR 和响应请求时将遵循这些指南。查看我们的内存文档了解更多详细信息。
  2. 自定义提示:在工作流程文件中使用 prompt 参数提供工作流程特定的指令。这允许您为不同的工作流程或任务自定义 Claude 的行为。

Claude 在创建 PR 和响应请求时将遵循这些指南。