以下是 审核者(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
文件。