マージリクエスト承認設定API
- プラン: Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
グループまたはプロジェクト内のすべてのマージリクエストに対する承認設定の設定です。すべてのエンドポイントで認証が必要です。
グループマージリクエスト承認設定
前提要件:
- グループのオーナーロールを持っている必要があります。
グループマージリクエスト承認設定を取得
グループのマージリクエスト承認設定を取得します。
GET /groups/:id/merge_request_approval_settingパラメータは以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | 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 | 整数または文字列 | はい | IDまたはURLエンコードされたパス。 |
allow_author_approval | ブール値 | いいえ | 作成者がマージリクエストを自己承認することを許可または禁止します。trueは、作成者が自己承認できることを意味します。 |
allow_committer_approval | ブール値 | いいえ | コミッターがマージリクエストを自己承認することを許可または禁止します。 |
allow_overrides_to_approver_list_per_merge_request | ブール値 | いいえ | マージリクエストごとに承認者をオーバーライドすることを許可または禁止します。 |
retain_approvals_on_push | ブール値 | いいえ | 新しいプッシュで承認数を保持します。 |
require_reauthentication_to_approve | ブール値 | いいえ | 承認者が承認を追加する前に認証を必須とする。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
}
}プロジェクトマージリクエスト承認設定
前提要件:
- プロジェクトのメンテナーロールが必要です。
プロジェクトマージリクエスト承認設定を取得
プロジェクトのマージリクエスト承認設定を取得します。
GET /projects/:id/merge_request_approval_settingパラメータは以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトの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 | 整数または文字列 | はい | IDまたはURLエンコードされたパス。 |
allow_author_approval | ブール値 | いいえ | 作成者がマージリクエストを自己承認することを許可または禁止します。trueは、作成者が自己承認できることを意味します。 |
allow_committer_approval | ブール値 | いいえ | コミッターがマージリクエストを自己承認することを許可または禁止します。 |
allow_overrides_to_approver_list_per_merge_request | ブール値 | いいえ | マージリクエストごとに承認者をオーバーライドすることを許可または禁止します。 |
retain_approvals_on_push | ブール値 | いいえ | 新しいプッシュで承認数を保持します。 |
selective_code_owner_removals | ブール値 | いいえ | GitLabコードオーナーのファイルが変更された場合、GitLabコードオーナーからの承認をリセットします。このフィールドを使用するには、retain_approvals_on_pushフィールドを無効にする必要があります。 |
require_reauthentication_to_approve | ブール値 | いいえ | 承認者が承認を追加する前に認証を必須とする。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
}
}