极狐GitLab Duo代码评审实战,AI守住Merge Request质量门禁
极狐GitLab Duo代码评审实战,AI守住Merge Request质量门禁
定义框:极狐GitLab Duo代码评审是基于大模型的合并请求智能审查功能,自动分析MR差异与上下文,在人工介入前指出缺陷、安全漏洞与代码质量问题。
评审积压不是加班能解决的
先问一个扎心的问题:你们团队MR的首次评审等待时间,是按小时算,还是按天算?
大多数研发团队的真实情况是——评审积压严重,资深工程师被日常评审淹没,真正复杂的架构决策反而没人有精力深想。于是要么降低评审标准,要么绕过评审直接合码。两条路,一条通向质量滑坡,一条通向线上事故。
极狐GitLab在18.1版本中将Duo代码评审正式GA,可用于生产环境。它的定位很明确:让AI承担第一轮初始评审,在人工审核人介入之前,先把潜在缺陷、安全漏洞和代码质量问题筛一遍。人工评审从"找低级问题"中解放出来,聚焦架构与业务逻辑判断——这才是质量门禁该有的分工。
两种形态,先分清再用对
根据官方文档,极狐GitLab的AI代码评审有两种运行形态,选型前必须分清:
维度 | 代码评审任务流(Agentic) | Duo代码评审(非Agentic) |
|---|---|---|
归属 | 极狐GitLab Duo Agent Platform | Duo Enterprise 附加组件 |
分析方式 | 多步Agentic推理 | 单次扫描 |
会话创建 | 是,可在项目会话中跟踪 | 否 |
自动审查 | 支持 | 支持 |
自定义指令/评论 | 支持 | 支持 |
Agentic形态会启动一个评审会话,多步推理逐步深化分析;非Agentic形态则是对MR差异的一次性扫描,适合拥有Duo Enterprise附加组件的团队快速上手。具体运行哪个,取决于发起评审用户所持的席位,两者可以在同一项目中并存。
三种触发方式,把AI变成"编外审核人"
按官方文档,触发一次AI初始评审有三种路径:
手动指派:在MR评论框输入快速操作
/assign_reviewer @GitLabDuo,或直接将极狐GitLab Duo指派为审核人;评论交互:在评论中提及
@GitLabDuo,可就评审结论追问,也能在任意讨论串中请求针对性反馈;自动评审:项目、群组乃至实例级开启后,所有新建MR自动获得初始评审。
它不是黑盒扫描。官方文档明确列出发送给大模型的上下文:MR标题、描述、变更前文件内容、MR差异、文件名、自定义指令。正因为它"读过"变更前的原始文件,评审意见才能区分"新增的坑"和"历史遗留",这一点是只看diff的静态扫描工具给不了的。
落地第一步,开启自动评审
手动触发适合尝鲜,但要成为质量门禁,必须走自动评审。项目维护者或所有者的操作路径:
找到项目,进入左侧边栏 设置 > 合并请求;
在 极狐GitLab Duo代码评审 部分,勾选 启用极狐GitLab Duo自动评审;
点击 保存更改。
开启后有三类MR会被自动跳过:草稿MR(标记为就绪后评审)、无任何更改的MR、命中排除规则的MR。第三类是关键——比如机器人账号批量提交的依赖升级MR、发版分支的例行MR,都值得排除,避免消耗无意义的评审资源。
排除规则通过仓库中的 .gitlab/duo/mr-review-automated-rules.yaml 定义,支持glob通配符:
exclude:
target_branches:
- "release/*"
source_branches:
- "dependabot/*"
authors:
- "*-bot"一个必须记住的细节:极狐GitLab Duo只从默认分支读取排除规则,提交到其他分支不生效。群组级治理则通过指定模板项目实现,群组模板与项目规则会自动合并,同类别冲突时项目规则优先。
大MR怎么办,官方给了回退机制
任何AI评审都绕不开上下文窗口的物理限制。官方文档给出了明确的回退设计:
初始请求包含MR差异和变更文件的原始内容;
若失败,自动重试但不包含原始文件内容(提示词更小,评审具体度下降);
重试仍失败,返回通用错误消息。
此外AI网关请求有120秒超时限制。所以工程纪律依然重要:大MR拆小、排除与评审无关文件的上下文、必要时由群组所有者通过 Non-Agentic Code Review 设置更换模型。AI门禁不是让流程纪律退役,而是让纪律有兜底。
什么时候别指望它
把丑话说在前面,这三个场景AI评审只能辅助、不能替代:
架构与业务语义判断:模型理解的是代码变更与上下文,不是你的业务边界,跨域设计合理性仍需人来把关;
安全合规的最终裁定:它能在人工介入前发现可疑模式,但漏洞定级与处置决策必须走安全团队流程;
零信任直接合码:自动评审的价值是"首轮过滤",把它的意见当最终结论、跳过人工审核,等于把质量门禁的钥匙交给概率。
常见问题
FAQ 1:触发评审后 @GitLabDuo 没有任何响应?
大概率是席位问题。请群组所有者检查群组的极狐GitLab Duo席位分配,确认发起评审的用户持有对应附加组件席位。非Agentic代码评审要求极狐GitLab Duo Enterprise附加组件。
FAQ 2:草稿MR会被自动评审吗?
不会。草稿状态被自动跳过,将MR标记为就绪后即可获得评审。如果MR命中了排除规则,仍可通过手动指派 @GitLabDuo 触发评审——排除规则只拦截自动评审,不拦截手动请求。
FAQ 3:大型MR评审总是失败怎么处理?
三个官方建议:把大MR拆分为较小的MR;对与评审无关的文件排除上下文;请群组所有者或实例管理员通过 Non-Agentic Code Review 设置选择上下文窗口更大的模型。
写在最后
代码评审的矛盾从来不是"要不要审",而是"谁来承担第一轮的体力活"。AI承担初始评审、人聚焦高价值判断,这个分工在18.1 GA之后已经是可落地的现实。与其继续让资深工程师在积压列表里消耗,不如先在一个试点项目上跑两周,看评审等待时间的变化。
想在自己的代码库上实测AI质量门禁的效果,免费试用极狐GitLab;
需要企业级落地方案评估,预约产品演示,聊聊你的MR评审现状。

