您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center 汽车系统工程   模型库  
会员   
   
基于SysML和EA进行系统设计与建模
7月16-17日 深圳+线上
UAF架构体系与实践
7月23-24日 北京+线上
Spec Driven Development 工程化实践
7月28-29日 北京+线上
     
   
 订阅
用 Claude Code 做代码审查和 CI/CD
 
作者:老章
  6   次浏览      
 2026-7-1
 
编辑推荐:
本文主要介绍了Claude Code 构建的三层代码审查防御体系(security-guidance 插件、Code Review 托管服务、GitHub Actions/GitLab CI/CD 集成),通过让 AI 在写代码时自查、PR 阶段多 agent 审查、CI/CD 流水线中自动化执行,形成贯穿开发全流程的质量与安全防线,希望对你的学习有帮助。
本文来自于Ai大模型的老章,由火龙果软件Alice编辑推荐。

最近 Anthropic 把 Claude Code 的「代码审查 + CI/CD」拼图基本补齐了:从 IDE 里写代码的那一刻起,到 commit 之前、PR 提上去之后、CI 跑起来的每一环,都有对应的 Claude 把关

我花了点时间把官方这套体系翻了一遍,越看越觉得这不是简单的「AI 帮你 review 一下」,而是一套 三层防御 ——边写、边提、边合,三处布岗,谁也别想偷溜过去

这篇就把这套体系怎么用、什么场景上哪个、坑在哪里,一次讲清楚

Claude Code 代码审查三层防御总览

Claude Code 代码审查三层防御总览

先讲清楚:这三层防御到底分别在哪里

很多人以为 Claude Code 做代码审查就是 PR 上挂个 bot,其实不是。官方把这件事拆成了三段,每一段对应一个产品:

阶段 产品 触发点 干什么
写代码时 security-guidance 插件 每次 Edit / 每个 turn 结束 / Claude 自己 commit 时 Claude 一边写一边自查,发现漏洞当场改
提 PR 后 Code Review(托管服务) PR 打开、push、 @claude review 多 agent 并行扫描整个 diff,行内评论
自动化时 GitHub Actions / GitLab CI/CD @claude 提及、定时任务、任意事件 把 Claude 当成一个能写代码、能开 PR 的 CI 工人

简单点说:

  • 左移 :security-guidance 让漏洞还没进 git 就被掐掉
  • 守门 :Code Review 在 PR 阶段做兜底
  • 生产线 :Actions / CI/CD 把这些能力嵌进流水线,让 @claude 直接干活

这三层不是互斥关系,是叠加。下面我一层一层拆

第一层:security-guidance 插件——让 Claude 边写边查自己

这是最容易被忽视、但我觉得最值钱的一层

它是 Anthropic 官方插件市场里的 security-guidance 插件,装一次就常驻 session。安装命令也简单:

/plugin install security-guidance@claude-plugins-official
/reload-plugins

装完之后 完全不用手动调 ,它会在 Claude 工作的三个时点自动跑:

Claude Code 代码审查三层防御总览

security-guidance 三个时点三种深度

三个检查时点,三种深度

1. 每次写文件(per-edit)

零模型成本,就是一个确定性的字符串/正则扫描。专门盯这些「眼熟」的危险写法:

  • 动态执行: eval( 、 new Function 、 os.system 、 child_process.exec
  • 不安全反序列化: pickle
  • DOM 注入: dangerouslySetInnerHTML 、 .innerHTML = 、 document.write
  • workflow 文件改动: .github/workflows/ 下的修改(这玩意一改就可能把仓库权限放出去)

发现匹配,警告会被追加到 Claude 的下一步上下文里,等于在它耳边说一句「这行很危险,注意一下」

2. 每个 turn 结束(end-of-turn review)

一个 turn 结束后,插件会算出本轮 working tree 的 git diff, 单独起一个 Claude 实例 专门做安全审查。注意:不是同一个 Claude 自己给自己打分——审查的那个是新上下文、专注挑刺、对原方案毫无感情

它会找字符串匹配抓不到的东西:

  • 越权访问 / 不安全的对象直接引用
  • 各种注入
  • SSRF
  • 弱加密

找到问题后,写代码那个 Claude 会被重新 prompt,把问题在同一会话里就地修掉。单 turn 最多审 30 个文件,连续重 prompt 最多 3 次

3. Claude 自己 commit / push 时

这一层是「深度版」agentic 审查。它会顺着代码爬上下文——调用方、sanitizer、相关文件都读一读,再判断有没有问题,减少把孤立看着危险其实安全的写法误报

注意一个细节: 只有 Claude 通过它的 Bash 工具执行 git commit / git push 才会触发 。你自己在终端里手动 commit 是不审的。每小时滚动上限 20 次

可以自己加规则

两种扩展方式:

# .claude/claude-security-guidance.md(给模型看的)
Do not log customer_id or account_number at INFO level or above
All routes under /admin must call require_role("admin") before any database read
Use crypto.timingSafeEqual for token comparison instead of ===

# .claude/security-patterns.yaml(给字符串匹配引擎的)
patterns:
-rule_name:internal_api_key
    substrings:["sk_live_","AKIA"]
    reminder:"Hardcoded API key prefix. Load credentials from the secret manager."
-rule_name:tenant_unfiltered_query
    regex:"\\.objects\\.all\\(\\)"
    paths:["**/src/tenants/**"]
    reminder:"Multi-tenant code must filter by org_id."

前者是软提示(findings + Claude 自己改),后者是硬扫描(每次 edit 必跑)

老章的话

这层我给它打 90 分,扣的 10 分是 Windows 上没法跑 agentic commit review(虚拟环境那一步被跳过),以及它本质不阻断写入——Claude 可以不听话。但凡你的代码偶尔会被实习 AI 写脏,这一层就是性价比最高的「家门口看门狗」

第二层:Code Review 托管服务——PR 阶段的多 agent 拷问

第一层是「在 IDE 里就别让烂代码出生」,第二层是「即使出生了,进仓库之前再筛一遍」

Code Review 是 Team / Enterprise 订阅才有的研究预览功能(注意:开了 Zero Data Retention 的组织用不了)。它不在你的 CI 里跑,是跑在 Anthropic 自己的基础设施上的托管服务

Claude Code 代码审查三层防御总览

Code Review 严重度与触发模式

它具体怎么工作的

PR 一开(或每次 push、或有人评论 @claude review ),后台会有 多个 agent 并行 扫 diff,每个 agent 负责一个 issue 类别。扫完之后还有一个 verification 步骤——拿候选 finding 去对照实际代码行为,把误报筛掉。最后去重、按严重度排序,作为 行内评论 贴在具体的代码行上

平均一次 review 跑 20 分钟。每个 finding 带严重度标签:

标记 严重度 含义
🔴 Important 合并前应该修
🟡 Nit 小问题,建议修但不卡
🟣 Pre-existing 仓库里本来就有的 bug,不是这个 PR 引入的

每条评论默认带 👍 / 👎 两个反应按钮,一键打分,Anthropic 用这个反馈来调 reviewer

很关键的一点 :check run 永远以 neutral 结束, 绝不卡合并 。也就是说它不会破坏你现有的 review 流程,只是多一双眼睛。如果你想让 CI 强制看 Claude 的结论,可以自己解析 check run 输出的最后一行:

gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \
  --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'

返回类似 {"normal": 2, "nit": 1, "pre_existing": 0} 的 JSON, normal > 0 就是有 Important 问题

三种触发模式,钱包敏感请注意

模式 行为 成本
Once after PR creation PR 开 / ready for review 时跑一次 1×PR
After every push 每次 push 都跑 N×push(最贵)
Manual 只在评论 @claude review / review once 时跑 按需

官方给的口径: 每次 review 平均 $15–25 ,按 PR 大小和复杂度浮动。这是单独走 usage credits 计费的,不占你 plan 的额度

我的建议: 默认 Manual + 关键仓库才开 push 模式 。 @claude review once 这个一次性版本很香,长 PR 频繁 push 时用它能省很多钱

用 REVIEW.md 把它调教成你想要的样子

Code Review 会读两个文件:

  • ** CLAUDE.md **:你给 Claude Code 用的通用项目说明,违反了 → 标记 nit
  • REVIEW.md :审查专用, 直接注入到每个 agent 的 system prompt 最高优先级

REVIEW.md 才是真正能改 review 行为的钥匙。它能干这些事:

  • 重新定义 Important :默认按生产代码校准,文档库 / 原型库可以收紧定义
  • 限制 nit 数量 :「最多贴 5 条 nit,多的合并说『还有 N 条类似的』」
  • 跳过规则 :generated 文件、lockfile、CI 已经管的事(lint、format、type)就别再说了
  • 加项目专属检查 :「新 API route 必须有集成测试」「日志不能出现 email / user_id / request body」
  • 二次 review 时收敛 :「第一次 review 之后只贴 Important,nit 一律不报」——这一条解决了「同一个 PR review 到第 7 轮还在改命名」的痛点

官方给的样板:

# Review instructions

## What Important means here
Reserve Important for findings that would break behavior, leak data,
or block a rollback: incorrect logic, unscoped database queries, PII
in logs or error messages, and migrations that aren't backward
compatible. Style, naming, and refactoring suggestions are Nit at most.

## Cap the nits
Report at most five Nits per review. If you found more, say "plus N
similar items" in the summary instead of posting them inline.

## Do not report
Anything CI already enforces: lint, formatting, type errors
Generated files under `src/gen/` and any `*.lock` file
Test-only code that intentionally violates production rules

## Always check
New API routes have an integration test
Log lines don't include email addresses, user IDs, or request bodies
Database queries are scoped to the caller's tenant

短就是好,规则越长权重越稀释,这是官方明确说的

找不到评论怎么办

有时候 check run 说有 N 个问题,diff 上却看不到行内评论——三个地方可以找:

  1. Check run 的 Details 链接:里面有按严重度排好的完整表格
  2. Files changed 标签页里的 annotation
  3. PR 主体下方的 Additional findings ——通常是 review 跑到一半你又 push 了一次,原来的行号已经不存在了

第三层:GitHub Actions / GitLab CI/CD——让 @claude 进生产线

前两层都是「review」类,第三层不一样:它把 Claude Code 作为一个 能写代码、能改 PR、能开 MR 的 CI 工人 塞进你的流水线

GitHub Actions

最快上手方式:在终端打开 Claude Code,敲 /install-github-app ,跟着流程走完就行(前提你是仓库 admin)

手动版三步:

  1. 装 Claude GitHub App:github⋅com/apps/claude(要 Contents / Issues / Pull requests 读写权限)
  2. 把 ANTHROPIC_API_KEY 加到仓库 secrets
  3. 把 examples/claude.yml 复制到 .github/workflows/

最小工作流:

name: ClaudeCode
on:
issue_comment:
    types:[created]
pull_request_review_comment:
    types:[created]
jobs:
claude:
    runs-on:ubuntu-latest
    steps:
      -uses:anthropics/claude-code-action@v1
        with:
          anthropic_api_key:${{secrets.ANTHROPIC_API_KEY}}

然后在任意 issue / PR 评论里:

@claude implement this feature based on the issue description
@claude how should I implement user authentication for this endpoint?
@claude fix the TypeError in the user dashboard component

Claude 会自动判断上下文,能写代码就直接开个 PR

从 beta 升到 v1 有 breaking change ,老用户注意: @beta → @v1 , direct_prompt → prompt , max_turns / model / allowed_tools 这些都挪到 claude_args 里去了

如果只想跑一个「自动 code review」工作流,直接拿官方插件:

- uses: anthropics/claude-code-action@v1
  with:
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    plugin_marketplaces: "https://github⋅com/anthropics/claude-code.git"
    plugins: "code-review@claude-code-plugins"
    prompt: "/code-review:code-review ${{ github.repository }}/pull/${{ github⋅event.pull_request.number }}"

也可以定时跑,比如每天 9 点出一份昨日 commits 摘要:

on:
  schedule:
    - cron: "0 9 * * *"
# ...
        with:
          prompt: "Generate a summary of yesterday's commits and open issues"
          claude_args: "--model opus"

GitLab CI/CD

由 GitLab 官方维护,目前 beta。本质和 GitHub 那套一样:跑在你自己的 runner 上、走 MR 流程、支持 Claude API / Bedrock / Vertex AI 三家提供商

最小配置:

stages:
  -ai

claude:
stage:ai
image:node:24-alpine3.21
rules:
    -if:'$CI_PIPELINE_SOURCE == "web"'
    -if:'$CI_PIPELINE_SOURCE == "merge_request_event"'
before_script:
    -apkupdate
    -apkadd--no-cachegitcurlbash
    -curl-fsSLhttps://claude.ai/install.sh|bash
script:
    -/bin/gitlab-mcp-server||true
    - >
      claude
      -p "${AI_FLOW_INPUT:-'Review this MR and implement the requested changes'}"
      --permission-mode acceptEdits
      --allowedTools "Bash Read Edit Write mcp__gitlab"
      --debug

把 ANTHROPIC_API_KEY 设为 masked CI/CD variable 就能跑。MR 评论里 @claude implement this feature 同样有效

企业环境想走 Bedrock / Vertex AI 的话,GitLab 那边走 AWS OIDC + IAM role 或 Workload Identity Federation,配置略繁琐但思路是一样的——把 API key 换成云厂商的身份认证

一个常被忽视的彩蛋:本地的 /code-review 命令

不想装 GitHub App、不想花 $15 一次的人,其实还有条免费路径

在本地任何 Claude Code session 里,敲:

/code-review

它会用「effort level」配置 review 强度,扫当前 diff,找正确性 bug。加上 --comment 还能直接把 finding 作为行内评论贴到 PR 上

老版本叫 /simplify ,v2.1.147 之后才改名 /code-review

适用场景:PR 还没提之前自己先扫一遍;或者不想买 Team 订阅又想要类似体验的个人开发者

这套体系到底怎么落地最划算

我自己梳理了一个 「三层防御部署清单」 ,按团队规模给个参考:

Claude Code 代码审查三层防御总览

三层防御部署清单

个人 / 小团队(不想花 Code Review 的 $15) :

  • ✅ 装 security-guidance 插件(免费,零成本守门)
  • ✅ 本地 /code-review --comment 自己扫 PR
  • ✅ GitHub Actions 跑基础 @claude 响应工作流(按量计费但可控)
  • ⏸️ Code Review 托管服务先不开

中型团队(重视 PR 质量、能负担订阅) :

  • ✅ 全员装 security-guidance 插件
  • ✅ Code Review 开 Manual 模式,关键 PR 评论 @claude review 触发
  • ✅ 写一个 REVIEW.md ,把 Important 定义、跳过规则、nit 上限都定死
  • ✅ Actions 跑日报 / 周报类自动化

企业 / 关键仓库 :

  • ✅ 组织级 enabledPlugins 把 security-guidance 推给所有人
  • ✅ Code Review 主分支用 After every push ,feature 分支用 Manual
  • ✅ 自建 GitHub App + Bedrock / Vertex AI,走 OIDC,避开 API key 落盘
  • ✅ CI 里解析 check run 的 severity JSON,Important > 0 时报警但不卡合并

几个我觉得值得说的细节

1. Code Review 不会和你现有的人工 review 冲突

它既不 approve 也不 block,只贴评论。这一点很关键——它是「多双眼睛」而不是「替你做主」。这是和很多自动审查工具不一样的设计哲学

2. Security plugin 的「不是自己审自己」原则

这一点我特地翻了官方说明:end-of-turn 和 commit review 跑的都是 新上下文的独立 Claude ,不是同一个写代码的 Claude 给自己打分。前者从 diff 起步,对原方案毫无投入,只被告知一件事:挑毛病。这个设计避免了 LLM「自我合理化」的老毛病

3. GitLab 的集成是 GitLab 维护的,Anthropic 不背锅

文档里明说了:「This integration is maintained by GitLab」。出问题去 GitLab issue 573776 反馈。这种合作模式我是第一次见,挺有意思的

4. 别忘了 hooks

如果你想要 确定性 而不是「靠模型自觉」的拦截——比如「禁止 Claude 编辑某个文件」「每次写完 Python 自动跑 black」——上 hooks。Claude Code 的 hooks 是真正的 shell 命令,跑在 PreToolUse / PostToolUse / Notification 等生命周期事件上。这是和 security-guidance 完全不同的另一条防线:插件是软提示,hooks 是硬规则

总结

把这套体系画成一张图,其实就是:

你写 prompt
   ↓
Claude 写代码 ──→ [security-guidance: 每个 edit 扫一遍]
   ↓
turn 结束 ──→ [security-guidance: 独立 Claude review 整个 diff]
   ↓
Claude commit ──→ [security-guidance: agentic 深度审查]
   ↓
你 push 提 PR
   ↓
[Code Review: 多 agent 并行 + verification 筛误报 → 行内评论]
   ↓
[GitHub Actions / GitLab CI/CD: @claude 干各种活]
   ↓
合并

三层防御的本质是 把人类 reviewer 从「找低级 bug」里解放出来,让他们去做真正需要判断的事 。Code Review 自己也说了:「By default, Code Review focuses on correctness: bugs that would break production, not formatting preferences or missing test coverage」——格式化、风格、覆盖率这些事它根本不掺和

我的态度:

  • security-guidance 插件 :所有人都该装,零门槛、零额外成本、纯收益
  • Code Review 托管服务 :值不值看团队,Manual 模式 + 好的 REVIEW.md 是性价比最高的玩法
  • Actions / CI/CD 集成 :当你想让 @claude 真的「写代码」而不只是「评代码」时再上
  • /code-review 本地命令 :穷开发者的福音,先用起来

整体看,Anthropic 把 Claude Code 从「IDE 里的 AI 助手」演进到「贯穿开发-CI-合并全流程的协作者」,这个方向比单纯做更大的模型有意思得多

   
6   次浏览       
相关文章

DevOps转型融入到企业文化
DevOps 能力模型、演进及案例剖析
基于 DevOps 理念的私有 PaaS 平台实践
微软开发团队的DevOps实践启示
相关文档

DevOps驱动应用运维变革与创新
运维管理规划
如何实现企业应用部署自动化
运维自动化实践之路
相关课程

自动化运维工具(基于DevOps)
互联网运维与DevOps
MySQL性能优化及运维培训
IT系统运维管理

最新活动计划
UAF架构体系与实践 7-23[北京]
SysML和EA系统设计与建模 7-16[深圳]
Spec 驱动开发(SDD)实战 7-28[北京]
AI辅助软件测试方法与实践 7-31[在线]
AI智能体开发技术实践 8-6[上海]
基于UML和EA系统分析设计 8-20[上海]
 
 
最新文章
DevOps 道法术器,立体化实施框架
DevOps 中高效测试基础架构的最佳实践
DevOps 在公司项目中的实践落地
如何基于 Kubernetes 构建完整的 DevOps 流水线
阿里云Kubernetes实战
最新课程
DevOps体系实践、工具与平台
基于Kubernetes的DevOps实践
互联网运维与DevOps
基于Kubernetes构建企业容器云
企业级DevOps工作体系与平台
更多...   
成功案例
北京 DevOps体系实践、工具与平台
神龙汽车 DevOps体系实践、工具与平台
中国移动通信 网络规划与管理
某航空公司 IT规划与企业架构
某金融公司 IT服务管理(ITIL V3)
更多...