跳到主内容
AIHO 2026 全新改版上线

用 AI Agent 搭一个自动化 PR Review 流水线

适用场景

  • 团队 5-20 人,PR review 是瓶颈
  • 想让 AI 做第一轮审查,人只看 AI 标记的问题
  • 需要 CI 阻断有严重问题的 PR(而非只评论)

架构

PR 提交 → GitHub Actions 触发
  ├─ CodeRabbit Bot 自动评论(逐行 + 摘要)
  ├─ Claude Code 自定义规则审查(安全 / 性能 / 规范)
  └─ 严重问题 → 设置 commit status = failed → 阻断合并

第一步:CodeRabbit 接入

CodeRabbit 是开箱即用的 GitHub App,装上就自动 review。

  1. coderabbit.ai 安装 GitHub App
  2. 选择要 review 的仓库
  3. 在仓库根目录加 .coderabbit.yml
reviews:
  auto_review:
    enabled: true
    drafts: false
  path_filters:
    - "!**/*.lock"
    - "!**/dist/**"
  instructions: |
    - 用中文评论
    - 重点关注 SQL 注入、XSS、敏感信息泄露
    - 不要评论代码风格(用 ESLint 管)
    - 性能问题只在 O(n²) 以上才报
  1. 提交一个 PR 测试,CodeRabbit 会在 30 秒内出评论

第二步:Claude Code 自定义规则

CodeRabbit 是通用审查,团队特定规范用 Claude Code 补。

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

name: AI Review
on:
  pull_request:
    types: [opened, synchronize]

jobs:
  claude-review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Get changed files
        id: changed
        run: |
          files=$(git diff --name-only ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }})
          echo "files=$files" >> $GITHUB_OUTPUT

      - name: Claude Code Review
        uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: |
            审查以下文件的改动,重点关注:
            1. 是否有未处理的 Promise rejection
            2. 是否有 SQL 拼接(而非参数化查询)
            3. 是否有 console.log 遗留在生产代码中
            4. 是否有 hardcoded 密钥 / token

            输出格式:
            - 🔴 严重问题(必须修复):文件:行号 + 原因
            - 🟡 建议(可选):文件:行号 + 建议
            - ✅ 没问题的文件不用提

            改动的文件:
            ${{ steps.changed.outputs.files }}

第三步:严重问题阻断合并

在 review workflow 末尾加 commit status:

      - name: Set check status
        if: steps.claude-review.outputs.severity == 'critical'
        run: |
          curl -X POST \
            -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
            -H "Accept: application/vnd.github.v3+json" \
            https://api.github.com/repos/${{ github.repository }}/statuses/${{ github.event.pull_request.head.sha }} \
            -d '{"state": "failure", "context": "AI Review / Critical Issues", "description": "发现严重问题,请修复后重新提交"}'

在 GitHub 仓库设置 → Branch protection → Require status checks → 添加 AI Review / Critical Issues

效果

上线一个月后:

指标之前之后
PR 平均 review 时间8 小时2 小时
人工 review 评论数15 条/PR5 条/PR
合并后发现的 bug3 个/周1 个/周
开发者满意度6/108/10

踩坑记录

  1. CodeRabbit 免费版限制:开源仓库免费,私有仓库 $24/seat/mo。小团队可只给核心仓库开。
  2. Claude Code API 成本:每个 PR 约 $0.1-0.5(取决于改动量),月费 $50 以内可控。
  3. 不要让 AI 阻断全部问题——只阻断安全类严重问题(SQL 注入、密钥泄露),否则开发者会绕过。
  4. path_filters 很重要——不加的话会 review lock 文件、dist 目录,浪费 API 调用。
  5. Claude Code Action 需要 fetch-depth: 0——否则 git diff 拿不到完整历史。