以下是 审核者(Reviewer)、指派人(Assignee)、批准人/核准人(Approver) 在 GitLab 合并请求中的关系对比表,结合权限、职责和交互逻辑整理:
| 角色 | 定义 | 职责 | 权限 | 如何指定 | 是否必填 | 
|---|---|---|---|---|---|
| 指派人 | 负责处理合并请求的“执行者” | 解决冲突、修改代码、推动流程完成 | 默认无批准权限(除非同时是核准人) | 手动指定(创建 MR 时选择或通过 /assign) | 可选(但建议明确) | 
| 审核者 | 被要求审查代码的“评审者” | 代码审查、提出建议、讨论改进 | 无直接批准权(除非被同时列为核准人) | 手动指定(通过 /reviewer或界面添加) | 可选(根据团队要求) | 
| 批准人 | 对合并请求拥有“批准权”的成员(即核准人) | 最终审核代码并批准合并 | 必须满足审批规则中的批准人数才能合并 | 自动(通过审批规则配置)或手动添加 | 必填(按规则要求) | 
| 核准人 | 同“批准人”,是 GitLab 官方术语中的 Approver | 同上 | 同上 | 同上 | 同上 | 
补充说明
- 角色重叠 - 一个人可同时担任多个角色(如:指派人 + 核准人)。
- 例如:小团队中,指派人自己修改代码后,可能仍需另一名核准人批准。
 
- 权限控制 - 批准人/核准人列表通常由 审批规则 或 保护分支 配置决定(如:必须 2 名 Maintainer 批准)。
- 审核者和指派人默认无批准权,除非他们被明确添加到核准人列表。
 
- 操作流程示例 - graph LR 提交MR --> 指定指派人 --处理代码/冲突--> 添加审核者 --代码评审--> 触发审批规则 --需核准人批准--> 合并
- 关键区别 - 审核者 vs 核准人:审核者是“建议者”,核准人是“决策者”。
- 指派人 vs 核准人:指派人负责“做”,核准人负责“通过”。
 
场景示例
| 场景 | 指派人 | 审核者 | 核准人(批准人) | 说明 | 
|---|---|---|---|---|
| 简单功能开发 | 开发者A | 无 | 开发者A | 自行开发并批准(需配置允许自我批准) | 
| 跨团队协作 | 前端开发者B | 后端开发者C | 技术主管D + 架构师E | 审核者提意见,但需指定角色批准 | 
| 紧急修复 | 运维人员F | 无 | 运维主管G | 指派人处理问题,主管直接批准 | 
总结
- 审核者 和 指派人 是流程中的协作角色,批准人/核准人 是安全管控角色。
- 实际权限由项目设置(Settings > Merge Requests)决定,建议根据团队规范配置审批规则和CODEOWNERS文件。
 沙滩星空的博客
沙滩星空的博客