合并请求审批设置

  • Tier: 专业版,旗舰版
  • Offering: JihuLab.com,私有化部署

编辑合并请求审批设置#

要查看或编辑单个项目的合并请求审批设置:

  1. 在左侧边栏,选择 搜索或前往 并找到你的项目。
  2. 选择 设置 > 合并请求
  3. 展开 审批

从实例或顶级群组级别级联设置#

为了简化审批规则设置的管理,在尽可能广泛的级别配置审批规则。创建的规则:

  1. 对于你的实例 适用于实例上的所有群组和项目。
  2. 顶级群组 上适用于所有子群组和项目。

如果一个群组或项目继承了设置,你无法在继承的群组或项目中更改它们。你必须在它们的起源处更改设置:顶级群组或实例。

防止作者批准#

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

  1. 在左侧边栏,选择 搜索或前往 并找到你的项目。
  2. 选择 设置 > 合并请求
  3. 合并请求审批 部分,滚动到 审批设置 并取消选中 防止作者批准 复选框。
  4. 选择 保存更改

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

  1. 防止项目的默认审批被覆盖
  2. (仅限私有化部署实例) 防止实例的默认审批被覆盖 对于你的实例。当为你的实例配置时,你无法在项目或单个合并请求上编辑此设置。

防止添加提交的用户进行审批#

History
    • 功能标志 keep_merge_commits_for_approvals 在极狐GitLab 16.3 中添加,以便在此检查中也包括合并提交。
    • 功能标志 keep_merge_commits_for_approvals 在极狐GitLab 16.5 中移除。此检查现在包括合并提交。

默认情况下,提交到合并请求的用户仍然可以批准它。你可以防止项目或实例中的提交者批准部分属于他们自己的合并请求:

  1. 在左侧边栏,选择 搜索或前往 并找到你的项目。
  2. 选择 设置 > 合并请求
  3. 合并请求审批 部分,滚动到 审批设置 并选择 防止添加提交的用户进行审批。如果此复选框未选中,则管理员已禁用它 对于你的实例,你无法为你的项目更改它。
  4. 选择 保存更改

如果合并请求影响了他们拥有的文件,提交到合并请求的 代码所有者 不能批准它。

防止在合并请求中编辑审批规则#

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

  1. 在左侧边栏,选择 搜索或前往 并找到你的项目。
  2. 选择 设置 > 合并请求
  3. 合并请求审批 部分,滚动到 审批设置 并选择 防止在合并请求中编辑审批规则
  4. 选择 保存更改

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

当你更改此字段时,它可以根据设置影响所有打开的合并请求:

  • 如果用户之前可以编辑审批规则,并且你禁用此行为,极狐GitLab 会更新所有打开的合并请求以强制执行审批规则。
  • 如果用户之前不能编辑审批规则,并且你启用审批规则编辑,打开的合并请求保持不变。这保留了已经对这些合并请求中的审批规则所做的任何更改。

需要用户重新认证以批准#

History
    • 在极狐GitLab 16.6 中通过 标志 名为 ff_require_saml_auth_to_approve 在 JihuLab.com 群组中引入了使用 SAML 认证来要求重新认证。默认禁用。
    • 在极狐GitLab 16.7 中通过 标志 名为 ff_require_saml_auth_to_approve 在私有化部署实例中引入了使用 SAML 认证来要求重新认证。默认情况下禁用。
    • 在极狐GitLab 16.8 中为 JihuLab.com 和私有化部署实例启用了默认的 ff_require_saml_auth_to_approve

在私有化部署的极狐GitLab 上,默认情况下使用 SAML 认证要求重新认证是可用的。要隐藏此功能,管理员可以 禁用名为 ff_require_saml_auth_to_approve 的功能标志。在极狐GitLab.com 和极狐GitLab Dedicated 上,此功能是可用的。

你可以强制潜在的审批者首先使用 SAML 或密码进行认证。

前提条件:

  • 此设置仅在顶级群组中可用。
  1. 在左侧边栏,选择 搜索或前往 并找到你的项目。
  2. 启用密码认证和 SAML 认证。有关更多信息,请参阅:
  3. 在左侧边栏,选择 设置 > 合并请求
  4. 合并请求审批 部分,滚动到 审批设置 并选择 需要用户重新认证(密码或 SAML)以批准
  5. 选择 保存更改

当提交被添加到源分支时移除所有审批#

  • Tier: 专业版,旗舰版
  • Offering: JihuLab.com,私有化部署

默认情况下,当你在批准后添加更多更改时,合并请求上的批准会被移除。在极狐GitLab 专业版和旗舰版中,为了在合并请求中添加更多更改后保留现有批准:

  1. 在左侧边栏,选择 搜索或前往 并找到你的项目。
  2. 选择 设置 > 合并请求
  3. 合并请求审批 部分,滚动到 审批设置 并清除 移除所有审批 复选框。
  4. 选择 保存更改

极狐GitLab 使用 git patch-id 来识别合并请求中的差异。此值是一个相当稳定和唯一的标识符,它可以在合并请求内部启用更聪明的决定关于重置审批。当你将新的更改推送到合并请求时,patch-id 会与之前的 patch-id 进行评估,以确定是否应重置审批。这使得极狐GitLab 在你对功能分支执行诸如 git rebasegit merge <target> 之类的命令时,做出更好的重置决策。

如果代码所有者的文件更改,移除他们的审批#

History
    • 在极狐GitLab 15.3 中引入。

仅移除在新提交中其文件更改的代码所有者的审批:

前提条件:

  • 你必须至少在项目中拥有维护者角色。

要执行此操作:

  1. 在左侧边栏,选择 搜索或前往 并找到你的项目。
  2. 选择 设置 > 合并请求
  3. 合并请求审批 部分,滚动到 审批设置 并选择 如果代码所有者的文件更改,移除他们的审批
  4. 选择 保存更改
  1. 实例的合并请求审批设置
  2. 合规中心
  3. 合并请求审批 API
  4. 合并请求审批设置 API