正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

マージリクエスト承認設定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
  }
}