合并请求批准设置

您可以配置合并请求批准 的设置,以确保批准规则符合您的用例。您还可以配置批准规则,它定义了在合并之前必须批准工作的用户数量和类型。合并请求批准设置定义了在合并请求接近完成时如何应用这些规则。

编辑合并请求批准设置

查看或编辑合并请求批准设置:

  1. 转到您的项目并选择 设置 > 合并请求
  2. 展开 批准

批准设置

这些设置限制了谁可以批准合并请求。

设置 描述
禁止作者批准 启用后,合并请求的作者无法批准。
禁止添加提交的用户批准 启用后,已提交合并请求的用户无法批准。
禁止在合并请求中编辑批准规则 启用后,用户无法覆盖项目对合并请求的批准规则。
需要用户密码才能批准 强制潜在的批准人首先使用密码进行身份验证。

您可以进一步定义将提交添加到合并请求时现有批准会发生什么。

设置 描述
保留批准 不要删除批准。
删除所有批准 删除所有现有的批准。
如果代码所有者的文件发生更改,则删除他们的批准 如果代码所有者已批准合并请求,并且提交更改了他们作为代码所有者的文件,则他们的批准将被删除。

禁止作者批准

默认情况下,合并请求的作者无法批准它。要更改此设置:

  1. 转到您的项目并选择 设置 > 合并请求
  2. 合并请求批准 部分,滚动到 批准规则,并清除 禁止作者批准 复选框。
  3. 选择 保存更改

作者可以编辑单个合并请求中的批准规则并覆盖此设置,除非您配置以下选项之一:

  • 在项目级别禁止覆盖默认批准
  • (仅限私有化部署实例) 在实例级别禁止覆盖默认批准。在实例级别配置时,您无法在项目或单个合并请求级别编辑此设置。

禁止添加提交的用户批准

默认情况下,提交合并请求的用户仍然可以批准。在项目级别或实例级别,您可以禁止提交者批准部分属于他们自己的合并请求。操作如下:

  1. 转到您的项目并选择 设置 > 合并请求
  2. 合并请求批准 部分,滚动到 批准规则,并选择 禁止添加提交的用户批准 复选框。如果清除此复选框,管理员在实例级别已禁用它,并且无法在项目级别进行更改。
  3. 选择 保存更改

根据您的极狐GitLab 版本,提交合并请求的代码所有者可能会也可能不会批准工作:

  • 在 13.10 及更早版本中,提交合并请求的代码所有者可以批准它,即使合并请求影响了他们拥有的文件。
  • 在 13.11 及更高版本中,当合并请求影响他们拥有的文件时,提交合并请求的代码所有者无法批准它。

要了解有关作者和提交者之间的差异的更多信息,请阅读官方 Git 文档。

禁止在合并请求中编辑批准规则

默认情况下,用户可以在每个合并请求的基础上覆盖您为项目创建的批准规则。如果您不希望用户更改合并请求的批准规则,您可以禁用此设置:

  1. 转到您的项目并选择 设置 > 合并请求
  2. 合并请求批准 部分,滚动到 批准规则,并选择 禁止在合并请求中编辑批准规则 复选框。
  3. 选择 保存更改

此更改会影响所有打开的合并请求。

需要用户密码才能批准

您可以强制潜在的批准人首先使用密码进行身份验证。:

  1. 为 Web 界面启用密码验证。
  2. 转到您的项目并选择 设置 > 合并请求
  3. 合并请求批准 部分,滚动到 批准规则,并选择 需要用户密码才能批准 复选框。
  4. 选择 保存更改

将提交添加到源分支时删除所有批准

默认情况下,即使您在批准后添加更多更改,对合并请求的批准仍然存在。如果要在添加更多更改时删除合并请求上的所有现有批准:

  1. 转到您的项目并选择 设置 > 合并请求
  2. 合并请求批准 部分,滚动到 批准规则,并选择 将提交添加到源分支时删除所有批准 复选框。
  3. 选择 保存更改

当合并请求在 UI 上变基时,不会删除批准。但是,如果目标分支发生更改,则会重置批准。

如果代码所有者的文件发生更改,则删除他们的批准

引入于 15.3 版本。

当添加提交时,如果您只想删除文件已更改的代码所有者的批准:

先决条件:

  • 您必须至少具有项目的维护者角色。

去做这个:

  1. 转到您的项目并选择 设置 > 合并请求
  2. 合并请求批准 部分,滚动到 批准规则,并选择 如果代码所有者的文件发生更改,则删除他们的批准
  3. 选择 保存更改