文档Actions 配方

Claude Code GitHub Actions 配置实战

Anthropic 提供了官方的 GitHub Action @anthropic-ai/claude-code-action,可以让 Claude Code 自动参与你的 PR 审查、Issue 分析和代码质量检查。这篇文章记录了实际配置和使用过程中的经验。

基础:PR 自动审查

最常用的场景是让 Claude 自动审查每个 PR,在评论里给出反馈。

最小可用配置

# .github/workflows/claude-review.yml
name: Claude Code Review
on:
  pull_request:
    types: [opened, synchronize]
  issue_comment:
    types: [created]
 
jobs:
  review:
    if: |
      (github.event_name == 'pull_request') ||
      (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude'))
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
      issues: write
    steps:
      - uses: anthropic-ai/claude-code-action@main
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

这个配置做了两件事:

  1. 每次 PR 创建或更新时自动触发 Claude 审查
  2. 在 PR 评论里 @claude 可以和它对话(比如问它某个改动的影响)

配置步骤

  1. 在 GitHub 仓库的 Settings → Secrets and variables → Actions 中添加 ANTHROPIC_API_KEY
  2. 创建 .github/workflows/claude-review.yml 文件,粘贴上面的配置
  3. 提交后,下一个 PR 就会自动触发
⚠️

API Key 的费用是按调用量计算的。活跃的仓库可能产生不少 API 费用。建议先在一个小项目上试跑,观察单次 PR 审查的 token 消耗再决定是否大规模启用。

进阶:结合 CLAUDE.md 定制审查标准

Claude 在审查时会读取仓库根目录的 CLAUDE.md。你可以在里面指定审查重点:

# CLAUDE.md
 
## 代码审查重点
- 所有新增的 public 方法必须有 JSDoc 注释
- 不允许直接使用 any 类型
- React 组件必须使用 memo 或 useMemo 避免不必要的重渲染
- 所有 API 接口调用必须有错误处理
- 禁止使用 console.log,统一使用 logger 模块

这样 Claude 的审查就不是泛泛的「这里可以优化」,而是针对你团队真正关心的标准来检查。

实用配置:自定义触发和过滤

只审查特定目录的改动

on:
  pull_request:
    paths:
      - 'src/**'
      - '!src/**/*.test.ts'  # 排除测试文件

在 Issue 中用 Claude 分析 Bug

on:
  issues:
    types: [opened, labeled]
 
jobs:
  analyze:
    if: contains(github.event.issue.labels.*.name, 'bug')
    runs-on: ubuntu-latest
    permissions:
      contents: read
      issues: write
    steps:
      - uses: anthropic-ai/claude-code-action@main
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          trigger_phrase: "/analyze"

给 Issue 打上 bug 标签后,评论 /analyze 就会让 Claude 分析 bug 描述并在代码中定位可能的相关文件。

指定使用的模型

- uses: anthropic-ai/claude-code-action@main
  with:
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    model: claude-sonnet-4-6  # 审查用 Sonnet 就够了,省费用

对于代码审查这类不需要极致推理能力的场景,用 Sonnet 性价比更高。

踩坑记录

Token 消耗比预期高

Claude 审查 PR 时会读取完整的 diff 和相关文件上下文。一个大 PR(改动 20+ 文件)可能消耗几万个 token。控制成本的办法:

  • paths 里限制触发范围
  • 团队规范小 PR(单个 PR 控制在 300 行以内)
  • 用 Sonnet 而非 Opus 做常规审查

权限配置不完整

最常见的报错是权限不够。确保 permissions 里包含:

  • contents: read — 读代码
  • pull-requests: write — 在 PR 中评论
  • issues: write — 如果你要用 Issue 功能

和其他 CI 工具的执行顺序

Claude 的审查是异步的,不会阻塞其他 CI 流水线。如果你想让 Claude 审查在 lint/test 之后运行(这样它能看到 CI 是否通过),用 needs 控制顺序:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm test
 
  claude-review:
    needs: test
    runs-on: ubuntu-latest
    steps:
      - uses: anthropic-ai/claude-code-action@main
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

适合的团队规模

根据使用经验,Claude Code Actions 最适合:

  • 小团队(2-5 人):人手不够做充分的代码审查,Claude 补充覆盖
  • 开源项目:社区贡献者的 PR 质量参差不齐,Claude 做第一轮筛查
  • 快速迭代阶段:发版频率高,人工审查跟不上节奏

不太适合:

  • 代码高度保密的项目(代码会发送到 Anthropic API)
  • 已经有成熟 review 文化和充足人力的大团队

相关内容

关于我