← Back to Blog
Claude CodeCodex CLICodeGateway

用 Claude Code 做 GitHub PR 治理:5 种自动化方案完整指南

(no oficial)

Esta guía la mantiene la comunidad de forma independiente. No está afiliada, respaldada ni patrocinada por el proveedor de la herramienta de terceros que trata. Todas las marcas de terceros son propiedad de sus respectivos titulares.

May 20, 2026
用 Claude Code 做 GitHub PR 治理:5 种自动化方案完整指南

用 Claude Code 做 GitHub PR 治理:从自动 Review 到安全审查的完整方案

TL;DR:Claude Code Action 接入 GitHub Actions 实现 PR 自动审查。本文给出 5 种自动化方案(全量 Review / 关键路径专项 / 外部贡献者 / OWASP 安全审查 / 自定义清单),含完整 YAML 配置和费用估算。

目录

PR 治理的问题出在哪里

大多数团队的 PR Review 有两个慢性病:

第一,等待。Senior engineer 忙,Review 排队,一个 PR 从提交到合并等 24–48 小时是常态。新功能的交付节奏被 Review 队列拖住。

第二,不一致。同样的问题,不同的 reviewer 有不同的标准——有人在意命名规范,有人关注安全漏洞,有人注重测试覆盖率。没有人能每次都全面检查所有维度。

Stack Overflow 2025 开发者调查显示,84% 的开发者已在日常工作中使用 AI 工具,但大多数只是用 AI 生成代码,没有把 AI 嵌入 Review 流程。把 Claude Code 接入 GitHub Actions,可以在 PR 提交后几分钟内完成客观性检查——不等人,不漏项。

这篇文章把常用的 5 个 PR 治理方案走一遍,每个都附完整的 workflow YAML,可以直接用。

Claude Code Action 是什么

claude-code-action 是 Anthropic 官方发布的 GitHub Action,让 Claude Code 直接参与 PR 和 Issue 的工作流。

核心能力:

  • 自动 Code Review:分析 PR diff,给出改进建议,支持 inline 注释到具体代码行
  • 交互式问答:在 PR 评论里 @claude,Claude 回复代码相关问题
  • 代码修改:Claude 可以直接实现简单的 fix、重构、新功能
  • 进度追踪:用 checkbox 实时显示 review 进度

运行机制:Action 在你的 GitHub runner 上执行,API 请求发到你指定的 Anthropic API 端点(可以是 Anthropic 直连、AWS Bedrock、Google Vertex AI,或第三方网关)。

安装:5 分钟快速上手

最快的方式是通过 Claude Code 终端安装:

bash
# 在项目根目录打开 Claude Code,运行
/install-github-app

这个命令会引导你完成 GitHub App 安装和 Secrets 配置。

注意:需要仓库管理员权限。如果你用 API 网关(如 CodeGateway)而不是 Anthropic 直连,参考手动配置方式。

手动配置(网关用户):

  1. 在仓库 Settings → Secrets and variables → Actions 里添加: - ANTHROPIC_API_KEY:你的 API Key - (可选)ANTHROPIC_BASE_URL:https://api.codegateway.dev/v1
  2. 在 .github/workflows/ 目录下创建 workflow 文件(见下面各方案)
  3. Workflow 需要的权限:
yaml
   permissions:
     contents: read
     pull-requests: write
     id-token: write

方案一:全量自动 PR Review

适用场景:对每一个 PR 自动触发 Review,适合主干开发模式或所有 PR 都需要规范检查的团队。

yaml
name: Claude Auto Review
on:
  pull_request:
    types: [opened, synchronize, ready_for_review]

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

      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          track_progress: true
          prompt: |
            REPO: ${{ github.repository }}
            PR NUMBER: ${{ github.event.pull_request.number }}

            Review this pull request with focus on:
            - Code quality and best practices
            - Potential bugs and edge cases
            - Security implications
            - Test coverage gaps

            Use inline comments for specific code issues.
            Use `gh pr comment` for overall summary.

          claude_args: |
            --allowedTools "mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*)"

track_progress: true 会在 PR 里显示一条进度评论,随着 Review 进行实时更新 checkbox——比较直观,能让团队看到 AI 正在工作。

触发时机:opened(新建 PR)、synchronize(有新 commit)、ready_for_review(从草稿转为正式 PR)。

方案二:关键路径专项 Review

适用场景:不对所有 PR 做全量 Review,只在关键文件变更时触发——比如认证模块、支付逻辑、API 接口定义。

yaml
name: Review Critical Paths
on:
  pull_request:
    types: [opened, synchronize]
    paths:
      - "src/auth/**"
      - "src/api/**"
      - "src/payment/**"
      - "config/security.yml"

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

      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: |
            REPO: ${{ github.repository }}
            PR NUMBER: ${{ github.event.pull_request.number }}

            This PR modifies critical authentication, API, or payment files.

            Focus your review on:
            - Authentication and authorization flows
            - Input validation and data sanitization
            - Potential SQL injection or XSS vulnerabilities
            - API contract changes that may break consumers
            - Payment logic correctness and idempotency

            Note: The PR branch is already checked out.

          claude_args: |
            --allowedTools "mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*),Bash(gh pr diff:*)"

paths: 过滤器让 Claude 只在真正重要的文件改动时出现,不刷低价值 PR。

方案三:外部贡献者严格审查

适用场景:开源项目或接受外部 PR 的仓库。对首次贡献者施加更高的审查标准,减少人工 Review 负担同时保证质量。

yaml
name: External Contributor Review
on:
  pull_request:
    types: [opened, synchronize]

jobs:
  external-review:
    # 只对首次贡献者触发
    if: github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
      id-token: write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 1

      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: |
            REPO: ${{ github.repository }}
            PR NUMBER: ${{ github.event.pull_request.number }}
            CONTRIBUTOR: ${{ github.event.pull_request.user.login }}

            This is a first-time contribution from @${{ github.event.pull_request.user.login }}.

            Please provide a comprehensive review:
            - Code quality and adherence to project conventions
            - Tests: are new behaviors covered?
            - Documentation: public APIs documented?
            - Breaking changes clearly noted?
            - License and attribution (no copy-pasted code without attribution)

            Be constructive and welcoming. Explain the "why" behind suggestions
            so the contributor learns, not just "change this."

          claude_args: |
            --allowedTools "mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*)"

注意 prompt 里加了"be constructive and welcoming"——对外部贡献者的反馈语气很重要,Claude 会遵守。

方案四:安全聚焦 Review(OWASP 对齐)

适用场景:有安全合规要求的项目,或希望每个 PR 都经过 OWASP Top 10 扫描的团队。

yaml
name: Security-Focused Review
on:
  pull_request:
    types: [opened, synchronize]

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

      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: |
            REPO: ${{ github.repository }}
            PR NUMBER: ${{ github.event.pull_request.number }}

            Perform a security-focused code review aligned with OWASP Top 10:

            1. Injection (SQL, NoSQL, command injection)
            2. Broken Authentication (session management, token handling)
            3. Sensitive Data Exposure (unencrypted PII, secrets in code)
            4. Security Misconfiguration (default credentials, verbose errors)
            5. Cross-Site Scripting (reflected, stored, DOM-based)
            6. Insecure Deserialization
            7. Known Vulnerable Dependencies (flag any new imports)
            8. Insufficient Logging (missing audit trails for sensitive ops)

            Format findings as:
            - [CRITICAL]: Must fix before merge
            - [HIGH]: Should fix before merge
            - [MEDIUM]: Fix in follow-up PR
            - [INFO]: Note for awareness, no action required

          claude_args: |
            --allowedTools "mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*),Bash(gh pr diff:*)"

给 Claude 明确的严重级别(CRITICAL / HIGH / MEDIUM / INFO)让输出格式一致,便于 reviewer 快速判断哪些必须处理。

方案五:自定义 Review 清单

适用场景:团队有特定的 Review 规范,需要 Claude 按清单逐项检查。

yaml
name: Team Review Checklist
on:
  pull_request:
    types: [opened, synchronize]

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

      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: |
            REPO: ${{ github.repository }}
            PR NUMBER: ${{ github.event.pull_request.number }}

            Review against our team checklist and mark each item:
            ✅ Pass | ❌ Fail (with specific location) | ⚠️ Needs attention

            CHECKLIST:
            [ ] Functions under 50 lines; complex logic extracted
            [ ] No direct DB queries outside repository layer
            [ ] New endpoints have rate limiting
            [ ] Error messages don't expose stack traces in prod
            [ ] New env variables documented in .env.example
            [ ] Migrations are reversible (down migration exists)
            [ ] API responses follow existing schema conventions
            [ ] No hardcoded secrets or API keys

            Post the checklist result as a PR comment with pass/fail for each item.
            Add inline comments on specific lines that fail.

          claude_args: |
            --allowedTools "mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*)"

这个方案的输出格式是结构化清单,Review 结果可以存档、统计,也方便在 PR 合并前做门控(Gate)。

人机边界:哪些留给人做

把 Claude 接入 PR 流程,不是让人退场——是让人聚焦在机器做不好的判断上。

工作类型

Claude 负责

人负责

代码风格 / 格式 / 命名

✅

不需要人

常见安全漏洞(SQL 注入、XSS 等)

✅

人决定优先级

测试覆盖率检查

✅

人判断哪些边界需要覆盖

技术债识别

✅

人决定是否此刻处理

业务逻辑正确性

❌

人 — 需要理解 PRD

架构一致性

❌

人 — 需要知道系统演进方向

合并决策

❌

人 — 最终 approve 和 merge

跨团队影响评估

❌

人 — 依赖上下文信息

关键原则:Claude 生成的 Review 注释需要人确认,不能绕过人直接 merge。Claude 是"第一个 reviewer",不是"唯一 reviewer"。

API 费用估算

以 Sonnet 4.6 为基准(input $3/1M tokens,output $15/1M tokens):

PR 规模

预估 tokens

单次 review 费用(直连)

通过 CodeGateway(1.2x 倍率)

小型(< 200 行 diff)

~8K

~$0.03

~$0.04

中型(200–800 行 diff)

~20K

~$0.08

~$0.10

大型(800–2000 行 diff)

~50K

~$0.20

~$0.24

按每天 10 个中型 PR 计算,月费用约 $24–$29——通常低于一个 senior engineer 一小时的时间成本。

建议:对超大 PR(> 2000 行)先考虑是否应该拆分,再考虑用 AI review。大 PR 本身就是 review 效率的杀手,AI 也一样。

常见问题

Q:Claude 的 review 结果准确吗?会不会产生太多误报?

初期会有误报,尤其是对业务规则的判断(Claude 不知道你的 PRD)。降低误报的方法是把 prompt 写精确——告诉 Claude 你的项目用了哪些约定、哪些规则是已知豁免的。运行 2–3 周后根据实际误报情况迭代 prompt,准确率会收敛。

Q:Claude 能直接修复 review 发现的问题吗?

可以,但建议谨慎开放。在 claude_args 里放开 Bash(git commit:*) 权限后,Claude 可以直接提交 fix commit 到 PR 分支。更安全的做法是:Claude 识别问题 + 建议修复代码,人来决定是否接受,再 apply。

Q:能不能让 Claude 只 review 特定语言的文件?

可以,在 paths: 过滤器里指定扩展名:

yaml
paths:
  - "**/*.py"
  - "**/*.ts"

Q:用 API 网关(CodeGateway)而不是 Anthropic 直连,Action 能正常工作吗?

可以。在 Secrets 里额外添加 ANTHROPIC_BASE_URL,然后在 workflow 里传入:

yaml
env:
  ANTHROPIC_BASE_URL: ${{ secrets.ANTHROPIC_BASE_URL }}

claude-code-action 会用这个环境变量覆盖默认端点。

Q:多个 commit push 到同一个 PR,会触发多次 review 吗?

会。synchronize 触发器在每次 push 时都会触发。如果 push 很频繁,可以改成只在 ready_for_review 时触发,或用 concurrency 设置取消前一次未完成的 review:

yaml
concurrency:
  group: review-${{ github.event.pull_request.number }}
  cancel-in-progress: true

Q:可以在私有仓库里使用吗?

可以,没有限制。API 调用走你自己的 Key,Claude 通过 gh CLI 访问 PR 内容,用的是 GitHub Actions 自带的 GITHUB_TOKEN,权限范围可控。

相关资料

参考资料

  • anthropics/claude-code-action GitHub 仓库(github.com/anthropics/claude-code-action)
  • Stack Overflow Developer Survey 2025
  • Anthropic Claude Code 文档(2026)

Anthropic 官方实践对照

参考 Anthropic 在《How Claude Code Works in Large Codebases》一文里总结的大型代码库实战经验,以下做法可以和上面 5 种自动化方案叠加:

  • 路径绑定的 review skill(叠加方案二:关键路径专项)—— Anthropic 建议为不同子目录绑定专属 skill,比如支付服务团队把 deployment skill 限定在 services/payments/。同理,可以把 OWASP 安全审查 skill 仅作用于 auth/、payments/ 路径,其他路径走通用 review,避免噪音。
  • 分离探索 agent 与编辑 agent(叠加方案五:自定义清单)—— 用一个只读 subagent 先生成 PR 涉及子系统的 map,再让主 agent 基于这个 map 做 review。Claude Code Action 里写成两个 step:先 claude-code map,再 claude-code review --context map.md。
  • stop hook 持续迭代 CLAUDE.md —— session 结束时跑一个 stop hook,让它反思本次 review 中发现的新模式,自动 propose 更新到仓库根的 CLAUDE.md。团队的 review 标准会随每次 PR 演进,而不是停留在初始版本。

更多企业级实践,看 Anthropic 官方博客:How Claude Code Works in Large Codebases。

Author:CodeGateway TeamReviewed on:2026-05-20

Resuelve los límites de claves de API y de facturación con CodeGateway

¿Sin clave de API oficial o con problemas para pagar con tarjeta internacional? Crea una clave sk-cg- al instante. Una sola clave para Claude, GPT, Gemini y DeepSeek: los modelos de texto de Claude y Gemini usan el protocolo Anthropic Messages (/v1/messages); los endpoints de texto compatibles con OpenAI no los aceptan. Incluye enrutamiento inteligente y créditos de prueba.

Crear cuenta gratis