Guide · 使用教程
CodeRabbit AI 代码审查教程:从仓库授权、PR Review 到人工合并门禁
从一个测试仓库开始配置 CodeRabbit:完成最小权限授权、自动与手动 PR Review、.coderabbit.yaml、团队规则、GitHub Checks、误报处理、增量复查、隐私与数据留存设置,并用两周指标决定是否扩展。
这篇教程会完成什么
本教程会搭建一个可回滚的 CodeRabbit Pull Request 审查流程:只授权一个测试仓库,创建可控 PR,确认自动与手动 Review,添加最小 .coderabbit.yaml,把 CI 结果纳入判断,处理误报与复查,最后再决定是否扩展到团队仓库。
目标不是让机器人“替你批准代码”,而是建立第一层可重复检查。最终合并仍由分支保护、必需 CI、CODEOWNERS 和人类审查者共同决定。
开始前需要准备
准备一个 GitHub、GitLab、Azure DevOps 或 Bitbucket 仓库。初次试验建议使用非生产仓库,或从真实项目复制一个不含密钥与客户数据的最小测试仓库。你还需要:
- 能安装仓库应用或配置集成的管理员权限;
- 至少一个受保护的默认分支;
- 一个会运行的测试或 lint 工作流;
- 一名熟悉业务逻辑的人类审查者;
- 三个测试 PR:边界条件错误、CI 失败、违反团队规则但语法正确。
截至 2026 年 9 月,CodeRabbit 公开仓库可免费审查,私有仓库付费方案提供 14 天试用。套餐与额度会变化,开始团队试点前再次检查 Pricing 页面,并设置负责人记录用量。
第一步:选择最小授权范围
登录 CodeRabbit 后添加代码托管平台集成。GitHub 安装页通常会提供“所有仓库”与“仅选择仓库”,试点阶段选择后者,只授权一个测试仓库。CodeRabbit 的审查、issue 管理或创建修复可能需要读写权限,因此管理员应先查看权限清单,而不是直接给整个组织开放。
完成安装后记录三件事:谁拥有 CodeRabbit 组织管理员权限、应用被授权到哪些仓库、如何卸载并撤销 OAuth 或 GitHub App。把这三项写进内部运行手册,避免试点结束后留下无人管理的访问。
如果仓库包含敏感代码,先查看组织设置中的缓存、Data Retention 和知识库选项。CodeRabbit 文档说明缓存可加密并在最长一周后过期,也可以禁用;knowledge_base.opt_out: true 会移除需要长期留存的知识库数据,但 learnings、历史 PR 上下文等能力也会受限。
第二步:创建第一个可验证 PR
不要用纯格式化 PR 作为第一次测试。创建一个小分支,加入一个真实但无破坏性的逻辑错误,例如过期时间比较写反、重试没有上限,或共享默认对象被意外修改。再配一个能证明正确行为的测试,但先让测试失败。
打开 PR 后,CodeRabbit 默认可自动开始 Review。等待评论时不要连续推送无意义提交;先观察它是否读取 diff、是否等待 GitHub Checks,以及首条有效意见出现的时间。记录:
- 它是否指出预埋问题;
- 是否解释为什么是问题;
- 建议能否直接应用;
- 是否出现与仓库无关的风格评论;
- CI 失败后是否提供了可执行的排查方向。
如果没有自动运行,可以在 PR 评论中输入 @coderabbitai review 手动触发。若手动命令也无响应,再检查应用安装、仓库授权、触发分支、草稿状态与作者过滤,不要先假定服务故障。
第三步:加入最小配置
在仓库根目录创建 .coderabbit.yaml。第一版只解决三个问题:哪些 PR 自动审查、哪些路径不值得花费评论、是否保留知识库数据。不要一开始复制几十条网上配置,未知字段和互相冲突的规则会让排查变难。
示例思路如下,字段必须以当前官方 Configuration 文档为准:
reviews:
auto_review:
enabled: true
drafts: false
knowledge_base:
opt_out: false
若仓库有构建产物、快照、依赖锁文件或自动生成 SDK,应按官方字段添加路径过滤,让机器人重点阅读业务代码、配置、迁移与测试。路径过滤要逐步增加:先观察噪声,再排除有证据的低价值文件,避免把真正重要的生成配置一起跳过。
把 .coderabbit.yaml 本身作为一个小 PR 提交,查看 CodeRabbit 是否解析配置。配置失效时,使用文档提供的 schema 与详细日志定位拼写或层级问题。
第四步:把团队规则写成可检查条件
“代码要优雅”“注意性能”不是好规则。把规则改成机器人和人都能判断的条件,例如:
- 新增外部 API 调用必须有超时和有限重试;
- 数据库迁移必须包含回滚或向前修复说明;
- 权限检查必须发生在数据读取之前;
- 新增环境变量必须同步更新示例文件与部署文档;
- 修改支付、认证或删除路径时必须添加失败测试;
- 公开接口变更必须说明兼容性。
仓库已有 CONTRIBUTING、STYLEGUIDE、架构决策记录或目录级说明时,优先让 CodeRabbit 使用这些可维护文档,不要在多个后台重复维护相互冲突的文本。
每新增一条规则,都准备一个应该触发和一个不应该触发的 PR。否则你只知道规则“看起来正确”,不知道它是否会制造误报。
第五步:接入 CI 结果
CodeRabbit 可以读取 GitHub Checks 等 CI 结果,把失败日志与变更放在一起分析。要让这个能力有价值,CI 本身必须稳定:测试名称清楚、失败日志包含实际错误、重复 flaky test 有负责人。
建立顺序:
- 先确保测试、lint、类型检查在没有 CodeRabbit 时能稳定运行;
- 将关键工作流设置为分支保护的 Required checks;
- 让 CodeRabbit 等待或读取这些检查;
- 验证它能区分代码问题、环境故障和 flaky test;
- 即使 AI 说“可以合并”,Required check 失败时仍禁止合并。
如果 CI 日志含密钥、客户数据或内部 URL,先修复日志脱敏,再让任何 AI 服务读取。不要把“只在失败时出现”当作安全措施。
第六步:处理评论、修复与复查
收到评论后把它分成四类:确认缺陷、需要业务判断、偏好建议、错误或重复。对确认缺陷,先理解原因,再应用最小修复并补测试;对需要业务判断的评论,由代码所有者给出上下文;对错误建议,在 PR 中解释并调整规则或 learnings;对重复噪声,使用路径与触发配置减少出现频率。
一键修复不是自动正确。应用后必须查看 diff、运行测试并确认没有扩大修改范围。对数据库、权限、并发和安全相关变更,优先手动实现,不要让机器人在缺少完整上下文时生成大范围补丁。
推送修复后观察增量 Review 是否只检查新改动。若它持续重复已解决的问题,确认提交是否真正包含修复、评论线程是否已解析、缓存或配置是否更新,再使用手动 Review 命令复查。
第七步:建立人类合并门禁
推荐的合并条件是:Required checks 全部通过;CodeRabbit 的高严重度意见已解决或由代码所有者书面接受;至少一名人类审查者批准;敏感目录满足 CODEOWNERS;部署与回滚说明存在。
不要把 CodeRabbit 的“无问题”作为自动合并的唯一条件。AI 审查通常只能看到可访问的代码与上下文,无法证明需求正确、生产数据安全或部署过程可逆。
第八步:用两周数据决定是否扩展
试点至少收集两周或 30 个 PR。统计有效问题数、误报数、重复评论、被采纳建议、首条评论延迟、修复往返次数、开发者满意度和实际费用。把指标按 PR 大小和仓库类型分开,否则一个大型迁移会扭曲平均值。
扩展前回答:哪些仓库获益最大、哪些规则必须先补、谁维护配置、谁处理服务故障、每月预算上限是多少、如何撤销权限。如果团队只是得到更多评论,却没有减少缺陷或审查时间,就先优化触发范围,而不是购买更高套餐。
常见错误
安装后没有任何评论
检查应用是否授权到当前仓库、PR 是否处于 Draft、目标分支是否被配置跳过、作者或路径是否在排除范围,再尝试 @coderabbitai review。仍无结果时记录 PR URL、请求时间和日志,再联系支持。
评论太多且大多无用
先按文件类型统计噪声来源,排除生成文件与低价值路径;把主观风格偏好交给格式化和 lint;将 Review 配置从“所有提交都跑”改为更合理的触发方式。不要用“忽略所有低严重度”掩盖配置问题。
一键修复导致新问题
不要继续叠加自动修复。撤回或回滚该提交,重现原始问题,逐段应用最小修复并补回归测试。高风险模块始终由代码所有者确认。
成本增长太快
检查大 PR、频繁推送、重复机器人和不必要路径。限制自动 Review 的仓库与分支,拆分大型改动,给按量功能设置月度上限,并让另一个工具只在手动请求时运行。
私有代码合规评估不通过
停止扩大仓库授权,关闭缓存或数据留存,确认删除与撤权流程;若监管要求必须自托管或限制数据地区,联系企业销售核对可用部署,不要仅凭普通 SaaS 套餐页面做结论。
什么时候该换别的工具
团队所有仓库都在 GitHub、已经采购 Copilot,并希望减少供应商时,可先测试 GitHub Copilot code review。全员使用 Cursor、最看重发现问题后直接交给 Agent 修复时,可测试 Bugbot。需要在本地终端做深入、交互式代码复核时,可用 Claude Code。若预算只允许静态规则检查,先把 ESLint、Ruff、Semgrep、CodeQL 或类型检查做好,未必需要 AI Review。
CodeRabbit 更适合的信号是:PR 吞吐成为瓶颈、Agent 生成改动越来越多、团队需要跨编辑器统一规则,并且愿意维护一个独立审查层。
发布前检查清单
- 仅授权了计划内仓库;
- 分支保护与 Required checks 没有被取消;
-
.coderabbit.yaml通过 schema 校验; - 生成文件与低价值路径有明确处理;
- 至少完成三个带预期答案的测试 PR;
- 高风险评论必须由人类处理;
- 自动修复后会运行测试并检查 diff;
- 已确认缓存、留存、训练与第三方模型边界;
- 已设置预算负责人和月度复盘;
- 已记录卸载、撤权和故障回退步骤。
FAQ
CodeRabbit 安装后会自动审查所有 PR 吗?
默认可以自动审查符合条件的 PR,但实际行为受仓库、分支、草稿、作者和 .coderabbit.yaml 配置影响。先在测试仓库确认,不要直接推广到所有仓库。
如何手动触发一次 Review?
在 PR 评论中输入 @coderabbitai review。如果无响应,检查应用授权和自动审查过滤,并查看详细日志。
.coderabbit.yaml 应该一次写完整吗?
不建议。先配置自动审查与隐私选项,再根据真实噪声添加路径和规则。每次只改少量配置,便于回滚。
CodeRabbit 能读取 CI 失败吗?
它可以结合 GitHub Checks 等结果分析失败并给出修复方向,但前提是 CI 日志清晰且没有泄露敏感数据。CI 失败仍应阻止合并。
私有代码会被用于训练吗?
CodeRabbit 官方说明私有代码不用于训练;缓存、索引与知识库有可配置留存。企业仍应审查当前 DPA、模型提供商和组织设置。
可以完全关闭数据留存吗?
可以在组织设置或知识库配置中选择关闭,但 learnings、历史上下文等依赖留存的功能会受限。关闭前先确认团队真正需要哪些能力。
常见问题
- CodeRabbit 安装后会自动审查所有 PR 吗?
- 默认可以自动审查符合条件的 PR,但会受到仓库授权、目标分支、Draft 状态、作者、路径和 .coderabbit.yaml 设置影响。
- 如何手动触发 CodeRabbit Review?
- 在 Pull Request 评论中输入 @coderabbitai review。如果没有响应,检查应用授权、触发过滤和详细日志。
- .coderabbit.yaml 应该一次配置完整吗?
- 不建议。先配置自动审查与隐私选项,再根据真实噪声逐步添加路径和团队规则,每次保留可回滚的小改动。
- CodeRabbit 可以结合 CI 失败吗?
- 可以读取 GitHub Checks 等结果并给出排查建议,但 CI 本身必须稳定且日志经过脱敏;Required check 失败时仍应阻止合并。
- 私有代码会被用于训练吗?
- CodeRabbit 官方说明私有代码不用于训练;缓存、索引和知识库具有可配置的留存方式。企业仍应审查当前 DPA 与模型提供商。
- 可以完全关闭数据留存吗?
- 可以关闭缓存或组织级 Data Retention,也可设置 knowledge_base.opt_out;这样会限制 learnings 与历史上下文等功能。