Help us learn about your current experience with the documentation. Take the survey.

合并请求批准设置 API

  • Tier: Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

配置组或项目中所有合并请求的批准设置。 所有端点都需要身份验证。

组合并请求批准设置

前提条件:

  • 您必须拥有该组的 Owner 角色。

获取组合并请求批准设置

获取组的合并请求批准设置。

GET /groups/:id/merge_request_approval_setting

参数:

属性 类型 必需 描述
id integer 或 string 组的 ID 或 URL 编码路径

示例请求:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/merge_request_approval_setting"

示例响应:

{
  "allow_author_approval": {
    "value": true,
    "locked": false,
    "inherited_from": null
  },
  "allow_committer_approval": {
    "value": true,
    "locked": false,
    "inherited_from": null
  },
  "allow_overrides_to_approver_list_per_merge_request": {
    "value": true,
    "locked": false,
    "inherited_from": null
  },
  "retain_approvals_on_push": {
    "value": false,
    "locked": false,
    "inherited_from": null
  },
  "selective_code_owner_removals": {
    "value": false,
    "locked": false,
    "inherited_from": null
  },
  "require_password_to_approve": {
    "value": false,
    "locked": false,
    "inherited_from": null
  },
  "require_reauthentication_to_approve": {
    "value": false,
    "locked": false,
    "inherited_from": null
  }
}

更新组合并请求批准设置

更新组的合并请求批准设置。

PUT /groups/:id/merge_request_approval_setting

参数:

属性 类型 必需 描述
id integer 或 string 组的 ID 或 URL 编码路径
allow_author_approval boolean 允许或阻止作者自行批准其合并请求;true 表示作者可以自行批准。
allow_committer_approval boolean 允许或阻止提交者自行批准合并请求。
allow_overrides_to_approver_list_per_merge_request boolean 允许或阻止为每个合并请求覆盖批准者列表。
retain_approvals_on_push boolean 在新推送时保留批准计数。
selective_code_owner_removals boolean 如果代码所有者(Code Owners)的文件发生更改,则重置他们的批准。要使用此字段,您必须禁用 retain_approvals_on_push 字段。
require_reauthentication_to_approve boolean 要求批准者在添加批准前进行身份验证。在 GitLab 17.1 中引入

示例请求:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/merge_request_approval_setting?allow_author_approval=false"

示例响应:

{
  "allow_author_approval": {
    "value": false,
    "locked": false,
    "inherited_from": null
  },
  "allow_committer_approval": {
    "value": true,
    "locked": false,
    "inherited_from": null
  },
  "allow_overrides_to_approver_list_per_merge_request": {
    "value": true,
    "locked": false,
    "inherited_from": null
  },
  "retain_approvals_on_push": {
    "value": false,
    "locked": false,
    "inherited_from": null
  },
  "selective_code_owner_removals": {
    "value": false,
    "locked": false,
    "inherited_from": null
  },
  "require_password_to_approve": {
    "value": false,
    "locked": false,
    "inherited_from": null
  },
  "require_reauthentication_to_approve": {
    "value": false,
    "locked": false,
    "inherited_from": null
  }
}

项目合并请求批准设置

前提条件:

  • 您必须拥有该项目的 Maintainer 角色。

获取项目合并请求批准设置

获取项目的合并请求批准设置。

GET /projects/:id/merge_request_approval_setting

参数:

属性 类型 必需 描述
id integer 或 string 项目的 ID 或 URL 编码路径

示例请求:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/merge_request_approval_setting"

示例响应:

{
  "allow_author_approval": {
    "value": true,
    "locked": false,
    "inherited_from": null
  },
  "allow_committer_approval": {
    "value": true,
    "locked": false,
    "inherited_from": null
  },
  "allow_overrides_to_approver_list_per_merge_request": {
    "value": true,
    "locked": false,
    "inherited_from": null
  },
  "retain_approvals_on_push": {
    "value": false,
    "locked": true,
    "inherited_from": "group"
  },
  "selective_code_owner_removals": {
    "value": false,
    "locked": false,
    "inherited_from": null
  },
  "require_password_to_approve": {
    "value": false,
    "locked": false,
    "inherited_from": null
  },
  "require_reauthentication_to_approve": {
    "value": false,
    "locked": false,
    "inherited_from": null
  }
}

更新项目合并请求批准设置

更新项目的合并请求批准设置。

PUT /projects/:id/merge_request_approval_setting

参数:

属性 类型 必需 描述
id integer 或 string 组的 ID 或 URL 编码路径
allow_author_approval boolean 允许或阻止作者自行批准其合并请求;true 表示作者可以自行批准。
allow_committer_approval boolean 允许或阻止提交者自行批准合并请求。
allow_overrides_to_approver_list_per_merge_request boolean 允许或阻止为每个合并请求覆盖批准者列表。
retain_approvals_on_push boolean 在新推送时保留批准计数。
selective_code_owner_removals boolean 如果代码所有者(Code Owners)的文件发生更改,则重置他们的批准。要使用此字段,您必须禁用 retain_approvals_on_push 字段。
require_reauthentication_to_approve boolean 要求批准者在添加批准前进行身份验证。在 GitLab 17.1 中引入

示例请求:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/merge_request_approval_setting?allow_author_approval=false"

示例响应:

{
  "allow_author_approval": {
    "value": false,
    "locked": false,
    "inherited_from": null
  },
  "allow_committer_approval": {
    "value": true,
    "locked": false,
    "inherited_from": null
  },
  "allow_overrides_to_approver_list_per_merge_request": {
    "value": true,
    "locked": false,
    "inherited_from": null
  },
  "retain_approvals_on_push": {
    "value": false,
    "locked": false,
    "inherited_from": null
  },
  "selective_code_owner_removals": {
    "value": false,
    "locked": false,
    "inherited_from": null
  },
  "require_password_to_approve": {
    "value": false,
    "locked": false,
    "inherited_from": null
  },
  "require_reauthentication_to_approve": {
    "value": false,
    "locked": false,
    "inherited_from": null
  }
}