在 GitHub Actions 中使用 Claude Code——自动化 PR 审查、代码质量检查和其他 CI/CD 工作流。
设置
1. 配置 API 密钥
在 GitHub 仓库的 Settings → Secrets and variables → Actions 中添加:
ANTHROPIC_API_KEY:你的 Anthropic API 密钥
2. 创建工作流文件
在 .github/workflows/ 目录中创建 YAML 文件:
name: Claude Code PR Review
on:
pull_request:
types: [opened, synchronize]
jobs:
claude-review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
- name: Install Claude Code
run: curl -fsSL https://claude.ai/install.sh | bash
- name: Run Claude Review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
claude --print "审查这个 PR 的变更:
- 检查安全问题
- 检查代码质量
- 总结变更内容"
> review.md
- name: Post Review Comment
uses: actions/github-script@v7
with:
script: |
const fs = require('fs')
const review = fs.readFileSync('review.md', 'utf8')
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: review
})
常见工作流
PR 代码审查
name: Claude Code Review
on: pull_request
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- run: claude --print "审查 $(git diff main --name-only) 的安全和质量问题"
自动化文档生成
name: Generate API Docs
on:
push:
branches: [main]
paths: ['src/api/**']
jobs:
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
claude --print "根据 src/api/ 中的代码生成 OpenAPI 文档" > docs/api.md
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "更新 API 文档 [bot]"
依赖更新检查
name: Check Dependencies
on:
schedule:
- cron: '0 0 * * 1' # 每周一
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
claude --print "检查 package.json 中的过时依赖,创建更新 PR"
权限和安全
- 使用最小权限的 GitHub Token
- 不要允许 Actions 写入仓库密钥
- 审查 Claude 的输出后再自动合并
- 限制 Claude 的操作范围(使用
--print而非交互模式)
最佳实践
- 明确提示词中指定审查范围
- 将 Claude 的输出保存为评论或文件
- 使用
if: github.event.pull_request.draft == false跳过草稿 PR - 设置超时时间避免长时间运行
下一步
- GitLab CI/CD 集成
- 无头模式:脚本中使用 Claude
- 定时任务:设置定期任务