合并请求审批

要为项目中的变更设置审核流程,您可以配置合并请求审批。它们能够确保变更被合入到项目之前是经过审核的。您可以将审批配置为可选或必须,这取决于您的项目需求和付费层级。

配置审批规则

先决条件:

  • 您必须至少具有项目的开发者角色。

要配置审批规则:

  1. 前往项目的 设置 > 合并请求
  2. 转到 合并请求批准 部分。
  3. 设置您想要的规则。

您还可以配置:

更多关于配置规则的信息,请参阅 审批规则

必须批准

必须批准是按您指定的用户数量和类型强制执行代码审核。未经批准,工作无法合并。必须批准支持多个用例:

  • 强制审核合并到仓库中的所有代码。
  • 通过批准规则为给定的拟议代码更改指定审核者,以及最少数量的审核者。
  • 为所有提议的代码更改指定审核者的类别,例如后端、前端、质量保证或数据库。
  • 使用更改文件的代码所有者来确定谁应该审查工作。
  • 需要在合并导致测试覆盖率下降的代码之前获得批准
  • 旗舰版用户在合并可能引入漏洞的代码之前,也可以要求安全团队批准。

查看审批状态

您可以在两个地方看到合并请求的审批状态。在项目或群组的合并请求自身或在合并请求列表中

对单个合并请求

符合条件的审批者可以查看单个合并请求的审批状态。

要查看审批状态:

  1. 在左侧导航栏,选择 搜索或前往 并找到您的项目。
  2. 前往 代码 > 合并请求 并找到您的合并请求。
  3. 要查看合并请求,选择它的主题。
  4. 前往合并请求小部件查看审批状态。在此示例中,您可以审批合并请求:

    Merge request widget showing approval status

小部件会展示这些状态中的某一个:

  • 批准:合并请求需要更多批准。
  • 额外批准:合并请求需要必须的批准。
  • 撤销批准:您已经批准了合并请求。

要检查您的审批是否满足代码所有者要求,选择 展开符合条件的审批者 ()。

在合并请求列表中

您项目或群组的合并请求列表显示每个合并请求的审批状态:

示例 描述
Approvals not yet satisfied 缺失必须的审批。()
Approvals are satisfied 满足审批。 ()
Approvals are satisfied, and you approved 满足审批而且您还是其中一个审批人。 ()

单个审核者状态

要查看每个审核者的审核和审批状态:

  1. 打开合并请求。
  2. 检查有侧边栏。

每一个审批人的状态都会展示在他们的名字旁边。

  • 审核中
  • 已审批
  • {Comment templates} 审核人评论
  • 审核人要求变更

    This reviewer has requested changes, and blocked this merge request.

重新请求审核,在用户边上选择 重新请求审核 图标 ()。

审批合并请求

符合条件的审批人可以有两种方式来批准合并请求:

  1. 在合并请求小部件中选择 批准
  2. 在评论中使用 /approve 快速操作

批准的合并请求会在评审者列表中显示绿色的检查标记(),并显示在评审者旁边。当合并请求接收到所有需要的审批后,它将准备好合并,除非以下原因它被阻止合并:

阻止作者审批

要阻止作者审批自己的工作,需要启用阻止作者审批设置。

审批规则更改

如果您启用了审批规则覆盖,默认审批规则的更改不会影响现有合并请求,除非您更改了目标分支

无效规则

  • 引入于 15.1 版本。
  • 变更于 15.11 版本,功能标志invalid_scan_result_policy_prevents_merge。默认禁用。
  • 在极狐GitLab 16.2 中 GA,功能标志 invalid_scan_result_policy_prevents_merge 被移除。

当审批规则无法满足时,极狐GitLab 会将审批规则标记为自动批准,比如当:

  • 仅有的符合资格的审批人是合并请求作者。
  • 没有将符合条件的审批人指派给审批规则。
  • 所需的审批数量超过符合条件的审批人数量。

这些规则会被自动批准以免阻止它们各自的合并请求,除非您创建了规则通过合并请求审批策略

无效的策略创建规则将:

  • 显示为需要操作
  • 不会自动批准。
  • 阻止受影响的合并请求。

相关主题