合并请求审批具体怎么做:流程、角色与检查清单

合并请求审批要落地,关键是把审批条件写进规则和模板:先按改动风险分级,明确每级需要的评审人和审批人数;提交者补齐描述、关联工作项和自测证据后发起;评审人按清单核对并给出明确结论;最后由有合入权限的人确认门禁通过再合入。审批记录与工作项关联可以放在ONES这类研发管理工具中承载,让规则可执行、结果可追溯。



要点总览(TL;DR)


  • 先按改动风险分四级:文档与配置、普通功能、核心模块、紧急修复,每级写清必需评审人、最少审批人数和附加要求,并把规则落到分支保护与合并请求模板。
  • 提交者发起前补齐标题与描述(改了什么、为什么改、影响范围)、关联工作项、自测证据,改动聚焦单一目的,规模过大时拆分。
  • 评审按先整体设计与影响面、再具体实现、最后测试与边界的顺序进行,评论标明是否阻断合入,结论明确为通过、需修改或拒绝。
  • 合入前逐项确认自动化检查通过、审批人数与必需评审人满足、变更内容与审批结论一致、目标分支与合并方式正确,并准备回滚。
  • 流程是否跑通看审批记录是否完整可追溯、规则是否被绕过、紧急通道补审是否完成,定期回顾并把结论落到规则和模板修改上。


先定审批规则:按改动风险分级


合并请求审批的第一步是分级。所有改动走同一套审批要求,要么让文档改动被过度审批,要么让核心模块改动被轻易放行。按改动范围和影响面划分级别,为每级规定必需的评审人角色、最少审批人数和检查项,规则才有执行力。


分级可以按以下四档设计,团队可根据模块数量调整档位名称,但每档的审批要求要写清楚。


级别 典型改动 必需评审人 最少审批人数 附加要求
L1 文档与配置 README、注释、非生产环境配置、文案 同组任一成员 1 自动化检查通过即可
L2 普通功能 业务功能新增或修改,影响面限于单一模块 同组评审人 1–2 关联工作项,附自测说明
L3 核心模块 公共组件、数据模型、权限、支付、对外接口 模块负责人 + 一名跨模块评审人 2 关联设计说明,附影响面分析与回滚方案
L4 紧急修复 线上故障修复、安全补丁 值班负责人或指定授权人 1(授权人) 事后 24 小时内补审并补齐记录

哪些改动必须走完整审批、哪些可以简化,判断依据是影响面而非代码行数。触及核心模块、数据库结构、对外协议、权限逻辑的改动,即使只有几行,也应按 L3 处理;纯文档和注释改动可以走 L1。紧急修复通道只适用于线上故障和安全事件,由明确的授权人开启,并约定补审时限。


规则要落到两个地方才有效:一是分支保护规则,把目标分支的必需审批人数、必需评审人、自动化检查通过设为合入前置条件,未满足时合入按钮不可用;二是合并请求模板,在模板中列出级别选择、关联工作项、自测说明、影响面描述等字段,提交者发起时逐项填写。规则写在系统里,审批就不再依赖口头提醒。



发起审批前,提交者要准备什么


评审往返次数多,多数时候原因在发起环节信息不全。提交者在发起合并请求前,应把评审人需要的信息一次补齐,让评审人不必反复追问背景。


标题与描述要回答三个问题:改了什么、为什么改、影响范围。标题用一句话说明改动对象和目的,例如“订单查询接口增加分页参数”;描述中写清背景与动机、主要改动点、受影响的模块和调用方、以及需要评审人重点关注的地方。涉及核心模块的改动,附上设计思路或方案链接。


关联工作项是审批可追溯的基础。合并请求应关联对应的需求单、缺陷单或任务编号,评审人可以从工作项看到原始需求和验收标准,合入后也能从工作项反查代码改动。自测与验证证据包括本地或测试环境验证结果、新增或修改的测试用例、关键接口的请求响应示例、界面改动的前后截图。证据不必冗长,但要能让评审人判断改动确实被验证过。


改动规模需要控制。一个合并请求聚焦一个目的,功能改动与格式化、重命名、依赖升级分开提交。经验上单次改动控制在评审人一次能看完的范围内,超过时按功能点或层次拆分,拆出的每个合并请求都能独立通过检查。下面是一份提交前自检清单:


  • 标题能说明改动对象和目的,描述包含背景、改动点、影响范围
  • 已关联工作项或需求单号
  • 已选择改动级别,并按级别补齐必需信息
  • 自测结果、测试用例或验证截图已附上
  • 改动聚焦单一目的,格式化与逻辑改动未混在一起
  • 目标分支确认正确,无多余文件或调试代码


评审人按什么顺序审、审什么


评审顺序影响评审质量。建议先看整体设计与影响面,判断这个改动该不该这样做、会影响哪些调用方;再看具体实现,核对逻辑正确性与代码可维护性;最后看测试与边界,确认异常路径、并发情况、空值和权限边界是否被覆盖。先看细节容易陷入局部,漏掉设计层面的问题。


检查维度可以固化为清单,评审人逐项核对:


  • 正确性:逻辑是否符合需求与验收标准,边界条件、异常处理、空值判断是否完整
  • 可维护性:命名是否表意,函数职责是否单一,是否引入重复代码或不必要的复杂度
  • 安全性:输入校验、权限判断、敏感信息处理、日志是否泄露数据
  • 性能影响:是否引入循环内查询、大对象拷贝、缺少索引的查询等
  • 影响范围:对外接口、数据结构和公共组件的改动是否通知到调用方

评论的写法决定评审能否收敛。指出问题时说明位置、现象和建议做法,例如“这里对用户输入未做长度校验,建议在入口处限制并返回明确错误”;同时标明该评论是否阻断合入。阻断项必须修改后重新评审,非阻断项可以作为后续改进记录,避免所有意见都变成合入障碍。


评审结论归为三类,对应不同后续动作:通过,进入合入门禁;需修改,返回提交者修改后重新提交评审,原审批意见失效需重新确认;拒绝,终止本次合并请求,说明原因并关闭,必要时另起方案。结论要明确写出,避免用“再看看”“问题不大”这类模糊表述结束评审。



角色分工与各环节交付物


审批流程涉及四类角色,职责边界清楚,环节之间才有明确的交接物。


角色 职责边界 输入 输出物
提交者 准备改动与评审材料,响应评审意见,完成修改 工作项、需求说明、本地验证结果 合并请求(含描述、关联工作项、自测证据)、修改记录
评审人 按清单核对改动,给出评论与结论 合并请求、关联工作项、代码差异 评审评论、通过/需修改/拒绝结论
模块负责人 对核心模块改动做最终技术判断,裁决评审分歧 评审意见、影响面分析 裁决结论、补充评审要求
合入执行人 核对门禁条件,执行合入,观察合入后状态 审批记录、自动化检查结果 合入记录、回滚预案确认

审批意见冲突时,升级路径要事先约定:评审人与提交者对方案有分歧,先由模块负责人裁决;涉及跨模块影响,由相关模块负责人共同确认;涉及需求理解分歧,回到工作项由需求负责人澄清。裁决结论记录在合并请求中,作为后续追溯依据。


紧急修复通道需要明确授权人,通常为值班负责人或技术负责人。授权人开启通道后,改动可由一人审批合入,但必须在约定时限内补审,补齐常规级别的评审人和审批记录。补审未完成的,应在流程回顾中列出并跟进,避免紧急通道变成常态。


在工具层面,提交者与评审人的交接可以围绕工作项展开:合并请求关联工作项后,评审意见、审批结论和合入状态回写到同一工作项,ONES可承载这类工作项关联与审批记录留存,让角色之间的交接有统一入口。具体配置方式以团队实际使用的工具版本为准。



合入门禁与最终确认


评审通过不等于可以合入。合入前要逐项确认门禁条件,任何一项未满足都不应合入。


  • 自动化检查通过:构建成功、单元测试与集成测试通过、静态扫描无新增阻断问题
  • 审批条件满足:审批人数达到该级别要求,必需评审人已给出通过结论
  • 变更内容一致:评审后新增的提交已重新评审,审批结论对应最新代码
  • 目标分支与合并方式确认:合入目标分支正确,合并方式(合并提交、压缩合并、变基)符合团队约定
  • 回滚准备就绪:核心模块改动有回滚方案,数据库变更确认可回退

合入执行人完成合入后,需要观察一段时间:检查构建流水线、监控指标和错误日志,确认没有异常后再关闭相关工作项。发现异常时按预案回滚,并在合并请求中记录原因。合入记录、审批记录和回滚操作都应保留,作为后续复盘的材料。



一个完整示例:从提交到合入


以下为演示情景,用于说明流程如何走通,不代表真实项目数据。


背景:某业务系统需要为订单查询接口增加分页参数,改动涉及接口层和一个公共分页组件。提交者判断公共组件属于核心模块,将合并请求定为 L3 级别。


提交者准备:标题写“订单查询接口增加分页参数”,描述中说明背景(列表数据量增大导致响应变慢)、改动点(接口新增 page 与 size 参数、公共分页组件增加默认值处理)、影响范围(三个调用方需同步调整)、自测结果(本地接口测试通过,附请求响应示例),并关联需求单号。改动拆成两个合并请求:公共组件改动与接口改动,前者先提交。


发起审批:公共组件合并请求按 L3 要求,指定模块负责人和一名跨模块评审人。分支保护规则要求两人审批且自动化检查通过。


评审往返:模块负责人先看整体设计,确认默认值处理方式合理;跨模块评审人发现一处边界问题——size 传入 0 时未做校验,标记为阻断项并给出建议。提交者补充校验逻辑和对应测试用例后重新提交,两位评审人重新确认,结论改为通过。


门禁与合入:构建与测试通过,静态扫描无新增问题,两人审批满足。合入执行人确认目标分支为开发分支、合并方式为压缩合并,完成合入。合入后观察监控与错误日志,确认接口响应正常,关闭需求单。


记录留存:合并请求中保留了级别选择、关联工作项、两轮评审意见、审批结论和合入记录,后续可从需求单反查这次改动。



怎么判断这套审批流程跑通了


流程是否有效,不看规则写得多完整,而看实际合并请求是否按规则执行。可以从以下几个方面检查。


审批记录完整可追溯:抽查近期合并请求,是否都能看到级别、关联工作项、评审意见、审批结论和合入人。缺少关联工作项或审批结论模糊的合并请求,说明模板字段没有被认真填写。


规则是否被绕过:检查目标分支是否存在直接推送、未经审批合入的记录;紧急通道的使用频率和补审完成情况;分支保护规则是否被临时关闭。发现绕过时,先确认是规则设计不合理还是执行不到位,再决定调整规则还是加强提醒。


评审往返次数与合入前等待情况可以作为流程健康度参考:往返次数持续偏高,可能是提交准备不足或改动规模过大;等待时间异常,可能是指定评审人负载过重。这类指标用于发现流程问题,具体的流动效率分析属于另外的话题。


定期回顾机制:建议按固定周期回顾一次审批记录,检查分级是否合理、检查项是否覆盖近期出现的问题、紧急通道是否被滥用。回顾结论落到规则和模板的修改上,例如新增检查项、调整某类改动的级别、更换评审人分配方式。规则随团队实践调整,审批流程才能持续被执行。



常见问题


小团队人少,评审人不够,分级审批还能执行吗?


可以执行,但需要调整分级方式。小团队常见的情况是同一人既提交又评审,这时应保证提交者本人不审批自己的改动,至少由另一名成员给出通过结论。L3 核心模块要求的跨模块评审人,在团队规模小时可以由技术负责人或相邻模块的负责人兼任,但要在规则中写明兼任条件,避免临时找人。


如果确实只有一两名具备评审能力的人,可以把 L1、L2 的审批人数降为 1,把精力集中在核心模块的双人审批上。分级的意义是让审批强度与风险匹配,人数不足时优先保证高风险改动有人把关。


紧急修复走了快速通道,事后补审应该补到什么程度?


补审应补齐常规级别要求的评审人和审批记录,而不是只留一句“已修复”。具体包括:在合并请求中补充改动说明和影响范围,由常规级别的评审人重新核对代码差异,确认没有夹带无关改动,并把补审结论记录在合并请求中。涉及核心模块的紧急修复,补审时同样需要模块负责人确认。


补审时限要在规则中写明,例如 24 小时内完成。超过时限未补审的,应在流程回顾中列出并跟进。紧急通道使用频率明显上升时,说明常规审批可能过重或故障响应机制有问题,需要回头检查规则本身。


评审通过后提交者又推了新提交,原审批还有效吗?


原审批不应直接沿用。评审结论对应的是评审时的代码版本,评审后新增的提交没有被任何人看过,直接合入等于绕过了审批。常见做法是:新增提交后,合并请求的审批状态重置,需要评审人重新确认;如果新增提交只是修正评审中提出的问题,可以由原评审人快速确认后恢复通过状态。


为减少这种情况,提交者应在评审期间集中处理意见,避免评审进行中反复推送小改动。分支保护规则中如果支持“新提交后需重新审批”的配置,建议开启,让这一要求由系统执行。


评审意见分歧较大时,怎么避免僵持?


分歧要按事先约定的路径升级,而不是在评论区反复争论。技术方案分歧先由模块负责人裁决;涉及多个模块的影响,由相关模块负责人共同确认;需求理解不一致,回到关联工作项由需求负责人澄清。裁决结论写进合并请求,作为后续追溯依据。


为减少分歧,提交者在描述中写清设计取舍和备选方案,评审人评论时说明理由和影响,而不只给结论。分歧频繁出现在同一类问题上时,说明团队缺少相应的设计约定或编码规范,应在回顾中补充,而不是每次靠个案裁决。


审批记录放在代码平台里就够了,还需要关联到工作项吗?


代码平台保留了代码差异和评审评论,但需求背景、验收标准和后续排期通常在工作项中。合并请求关联工作项后,评审人能看到这次改动对应的原始需求,合入后也能从需求反查代码改动,追溯链条才完整。对于需要审计或复盘核心模块变更的团队,这种双向关联尤其有用。


如果团队使用 ONES 这类研发管理工具承载工作项,可以把合并请求的审批结论和合入状态回写到对应工作项,让需求、代码和审批记录在同一处查看。具体配置方式以团队实际使用的工具版本为准。