周五发布前,给团队的每个 PR 接上 Claude Code 审查备注
周五准备发布,团队还有几个拉取请求等待审查:一个修改登录校验,一个调整数据库查询,另一个修复测试。你希望每个 PR 都先收到一份简短备注,指出值得人工检查的位置,而不是让同事从头寻找风险。把 Claude Code 接进持续集成,就是让这一步随代码提交自动发生。
一次 PR 更新怎样变成审查备注
持续集成,也就是 CI,会在代码发生变化时自动执行任务。原本这些任务可能只有测试、代码检查和构建;现在可以增加一个 Claude Code 审查任务。
流程并不神秘:有人创建或更新 PR,流水线取得改动内容,把审查要求交给 Claude Code,再将结果发布到 PR。它能帮助发现遗漏的边界条件、可疑的错误处理和缺少的测试,但不能证明代码正确,也不应代替人工批准。
先让一个仓库跑通最小流程
以 GitHub Actions 为例,可以监听 pull_request 事件中的创建、更新提交和重新打开操作。首次试用只选择一个仓库,不必同时改动所有项目。
- 取得 PR 的目标分支、当前提交和二者之间的差异,避免误审整个分支历史。
- 排除锁文件、生成文件和压缩资源,把注意力留给业务代码与测试。
- 通过 Claude Code 的非交互模式提交任务,设置执行超时,并将输出保存为审查结果。
- 由单独的发布步骤,把结果写入当前 PR 的评论。
固定 Claude Code 版本,并记录本次审查的提交编号。出现异常时,团队才能分清是代码变化、工具升级,还是流水线配置造成的。
审查提示词要规定范围和证据
“帮我看看代码”太宽泛。更实用的要求是:只审查本次差异,优先检查权限校验、异常处理和行为变化;每个问题说明文件位置、触发条件、可能影响与验证方法;没有可靠问题就明确写出,不为凑数提出建议。
例如,修改订单接口后,备注不应只说“建议增加测试”,而应指出“请求中缺少订单编号时,新分支可能继续访问数据库,请补充缺失参数的测试”。无法确认的推测要标明,不能冒充已复现的缺陷。
团队还可以提供简短的仓库约定,例如租户隔离规则和测试命令。上下文要够用,但不要每次都塞入整套文档。
PR 内容不可信,密钥不能跟着代码走
代码、注释和 PR 描述都可能包含诱导模型改变行为的文字。提示词应声明这些内容只是待审查的数据,但真正的保护仍来自运行环境和权限隔离。
- 把模型凭据放进 CI 的加密密钥配置,不写进仓库,也不输出到日志。
- 审查任务只开放必要的读取能力,不允许任意执行命令、修改文件或访问额外凭据。
- 不要在持有密钥的任务中执行 PR 自带的脚本、安装钩子或测试命令。
- 外部分叉仓库的 PR 通常拿不到密钥,可以先跳过自动审查,或经维护者确认后使用受限流程。
尤其不要为了取得密钥,就使用 pull_request_target 并执行 PR 中的不可信代码。需要发表评论时,可以拆出受控发布任务,只读取经过校验的文本结果,不执行其中的内容。
每次提交更新同一条评论
“每个 PR 都有备注”不等于“每次推送都新增一条评论”。给机器评论设置固定标记,后续更新原评论,并注明审查对应的提交编号。
同一 PR 有新提交时,可以取消尚未完成的旧任务;发布前再次核对提交编号,避免旧结果覆盖新结果。模型调用超时或失败时,应显示“本次审查未完成”,而不是“未发现问题”。
调用入口与费用先做小规模验证
如果团队希望按量使用模型,可以考虑 RelayVano,并注册账号,先用一个低风险 PR 验证连接与费用。它支持 Claude Code,提供的 API 基础地址为 https://api.relayvano.com;具体端点、认证变量和模型标识应按服务文档配置,不要把其他 SDK 的设置直接照搬。
成本主要受改动规模、上下文长度和重复运行次数影响。可以限制最大差异大小与输出长度,合并短时间内的连续推送;超大 PR 则提示拆分或转为人工审查。先观察实际账单,再扩大覆盖范围。
第一周先衡量备注是否有用
起步时,让测试和既有规则继续决定是否允许合并,AI 备注只作辅助。每周抽查几份结果,记录哪些问题被确认、哪些属于误报,以及是否缩短了人工审查时间。
一条指向明确、能够验证的风险提醒,比十条泛泛的风格建议更有价值。先把这件事稳定做好,再考虑是否让某些高置信度问题进入更严格的发布流程。