教程

Claude Code GitHub Actions 集成:自动化 CI/CD 工作流与 PR 代码审查

Claude Code GitHub Actions 集成完整指南:PR 自动代码审查工作流、自动生成单元测试、--print 非交互模式配置、GitHub Actions 权限配置、成本控制策略,以及官方 Claude Code Action 使用方法。

2026/3/13分钟 阅读ClaudeEagle

Claude Code 提供了 GitHub Actions 集成,让你在 CI/CD 流水线中调用 AI 能力:自动审查 PR、生成测试、修复代码质量问题,全部在 GitHub 工作流中完成。

核心能力

  • PR 自动审查:每次 PR 创建或更新时,自动进行 AI 代码审查
  • 测试生成:自动为新代码生成单元测试
  • 代码质量检查:在合并前发现潜在问题
  • 文档更新:代码更改时自动更新相关文档
  • Issue 分析:分析 Bug 报告并提出修复建议

快速开始

添加 API Key 到 GitHub Secrets

GitHub 仓库 -> Settings -> Secrets and variables -> Actions 添加 Secret: ANTHROPIC_API_KEY = your_api_key

基础工作流:PR 代码审查

创建 .github/workflows/claude-review.yml

yaml
name: Claude Code Review

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Install Claude Code
        run: npm install -g @anthropic-ai/claude-code

      - name: Run Claude Review
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          claude --print \
            --allowedTools "Read,Write,Bash" \
            "审查这个 PR 的代码变更,重点关注:
            1. 潜在的 Bug 或逻辑错误
            2. 安全漏洞
            3. 性能问题
            4. 代码风格一致性
            以 GitHub PR 评论格式输出结果"

自动生成测试

yaml
name: Generate Tests

on:
  pull_request:
    paths:
      - 'src/**/*.js'
      - 'src/**/*.ts'

jobs:
  generate-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install Claude Code
        run: npm install -g @anthropic-ai/claude-code

      - name: Generate Missing Tests
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          git diff --name-only origin/main...HEAD | grep -E '\.(js|ts)$' | while read file; do
            testfile=$(echo $file | sed 's/src/tests/')
            if [ ! -f "$testfile" ]; then
              claude --print --allowedTools "Read,Write" \
                "为 $file 生成完整的 Jest 单元测试,保存到 $testfile"
            fi
          done

      - name: Commit Generated Tests
        run: |
          git config --global user.email "claude-bot@example.com"
          git config --global user.name "Claude Bot"
          git add tests/
          git diff --staged --quiet || git commit -m "feat: auto-generate tests by Claude"
          git push

GitHub Actions 中通常使用 --print 模式(非交互模式):

bash
claud --print "任务描述"                    # 执行并打印结果
claud --print --allowedTools "Read,Write" "..." # 指定允许的工具
claud --print --output-format json "..."     # JSON 格式输出

--print 模式关键特性:

  • 非交互,适合 CI 环境
  • 执行完成后自动退出
  • 返回码反映任务成功/失败

权限配置

不同任务所需的 GitHub Actions 权限:

任务所需权限
读取代码contents: read
创建 PR 评论pull-requests: write
提交代码contents: write
创建 Issuesissues: write

成本控制

GitHub Actions 中每次 Claude 调用都会消耗 API token,建议:

yaml
# 只在特定标签的 PR 上运行
on:
  pull_request:
    types: [labeled]
    # 只有打了 ai-review 标签的 PR 才触发

jobs:
  review:
    if: contains(github.event.pull_request.labels.*.name, 'ai-review')

或限制运行频率:

yaml
on:
  pull_request:
    types: [opened]  # 只在 PR 首次创建时运行,而非每次 push

与官方 Claude Code Action 结合

Anthropic 提供官方 GitHub Action:

yaml
- uses: anthropics/claude-code-action@v1
  with:
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    task: "审查代码并创建 PR 评论"

原文整理自:Claude Code GitHub Actions | 来源:Anthropic 官方文档

相关文章推荐

教程Claude Code + GitHub Actions:自动化代码审查与 CI/CD 集成完全指南Claude Code GitHub Actions 完整配置指南:5 分钟快速安装(GitHub App + API Key Secret + Workflow 文件)、四大使用场景(按需 PR 审查/Issue 自动实现/快速修复/自动 Changelog)、每 PR 自动触发审查配置、高级参数(模型/轮数/工具限制/AWS Bedrock)与安全最佳实践。2026/3/13教程Claude Code GitHub Actions 集成指南:让 AI 自动化你的 CI/CD 流水线Claude Code GitHub Actions 让 AI 融入 GitHub 工作流,支持通过 @claude 提及触发代码审查、自动创建 PR 和修复 Bug。本文涵盖快速安装、手动配置、Beta 到 v1.0 升级指南、实用工作流示例(PR 审查、Issue 自动修复)以及 AWS Bedrock/Google Vertex AI 集成方案。2026/2/27教程Claude Code 权限管理完全指南:精确控制 AI 能执行哪些操作Claude Code 权限系统完整解析:四种权限模式(default/acceptEdits/bypassPermissions/plan)、--allowedTools 和 --disallowedTools 精确工具控制、Bash 命令白名单语法(通配符匹配)、settings.json 持久化权限配置、CLAUDE.md 中的权限规则声明、CI/CD 自动化场景的权限配置、以及如何在效率和安全之间找到平衡点。2026/3/18教程Claude Code 程序化调用完全指南:-p 标志、结构化输出、流式响应与会话续接Claude Code 程序化调用完全指南:-p/--print 非交互模式基础用法、三种输出格式(text/json/stream-json)、按 JSON Schema 提取结构化数据(structured_output 字段)、jq 解析响应、流式响应(stream-json + --verbose + --include-partial-messages + jq -rj 过滤 text_delta)、--allowedTools 自动批准工具(权限规则语法/末尾空格注意事项)、自动创建 Commit 示例、--append-system-prompt/--system-prompt 系统提示词、--continue/--resume 会话续接(Session ID 捕获)、GitHub Actions CI/CD 集成,以及 Python/TypeScript Agent SDK 高级用法入口。2026/3/8教程Claude Code 无头模式与 Agent SDK:非交互式脚本、CI/CD 集成完全指南Claude Code 无头模式与 Agent SDK 完全指南:-p 参数基础用法、三种输出格式(text/json/stream-json)、JSON Schema 结构化输出、精细工具权限控制、多轮对话 Session 管理,以及 GitHub Actions PR 安全审查和批量处理的 CI/CD 实战场景。2026/3/2教程Claude Code MCP 完整使用指南:安装配置主流 MCP 服务器扩展 AI 能力Claude Code MCP(Model Context Protocol)完整使用指南:MCP 是什么(AI 工具扩展标准)、claude mcp 命令管理服务器(add/remove/list)、主流 MCP 服务器安装配置(文件系统/GitHub/PostgreSQL/Brave Search/Slack)、本地 stdio 与远程 SSE 两种连接方式、MCP 服务器安全配置、在 CLAUDE.md 中声明 MCP 工具使用规范,以及自定义 MCP 服务器的快速开发入门。2026/3/18