Gerrit能否基于历史评审次数自动推荐低负载的评审人员?
Gerrit 评审负载均衡推荐方案说明
原生功能支持情况
Gerrit 原生默认的评审人推荐逻辑基于代码提交历史、代码所有权匹配规则设计,未内置「优先推荐历史评审次数较少成员」的规则,无法直接满足你的需求。
可用插件方案
现有Gerrit插件生态已经有成熟的组件可以实现对应能力:
reviewer-assigner插件:支持自定义评审人分配权重规则,你可以基于指定人员列表的近1/3/6个月历史评审次数设置优先级,给评审次数更少的新员工、低接触度成员配置更高的推荐权重,同时支持配置可选评审人白名单、每类变更的评审人数阈值,是目前匹配需求的最优现成方案。- 若你使用 Gerrit 3.7+ 版本,也可以在
code-owners插件的基础上做扩展配置,在原有代码所有者校验规则之外,叠加负载均衡的评审人推荐逻辑,同时兼顾代码质量管控和评审负载均匀的需求。
通用自定义实现方案
如果现有插件无法匹配你的特殊定制需求,可以选择两种实现路径:
- 自研轻量Gerrit插件
Gerrit 开放了ReviewerSuggestion扩展点,你可以基于该扩展点开发定制插件:- 从Gerrit数据库或REST接口
/changes/?q=reviewer:${username}+-status:abandoned拉取指定周期内成员的评审任务量 - 对指定可选人员列表按历史评审次数升序排序,优先返回评审次数少的成员作为推荐结果
整体开发成本较低,基础功能实现仅需数百行代码。
- 从Gerrit数据库或REST接口
- 外部服务对接实现
无需修改Gerrit服务端配置,自行开发独立的评审分配服务:- 监听Gerrit的PatchSet创建事件
- 拉取团队成员评审负载数据计算出推荐人选后,调用Gerrit REST API
/changes/{change-id}/reviewers自动添加评审人
该方案适合对Gerrit服务端修改权限有限的团队。
建议配置规则兜底:可以设置新员工评审后未给出+2 approval的变更,自动触发二次评审推荐,补充资深员工作为复核人,避免代码质量风险。
内容的提问来源于stack exchange,提问作者frans
相关产品推荐
相关产品推荐

