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

メンバーロール

  • プラン: Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed

このAPIを使用して、GitLab.comグループまたはGitLab Self-Managedインスタンス全体のメンバーロールを操作します。

インスタンスメンバーロールの管理

  • プラン: Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated

前提要件:

インスタンスメンバーロールをすべて取得

インスタンス内のすべてのメンバーロールを取得します。

GET /member_roles

リクエスト例:

curl --request GET \
  --header "Authorization: Bearer <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/member_roles"

レスポンス例:

[
  {
    "id": 2,
    "name": "Instance custom role",
    "description": "Custom guest that can read code",
    "group_id": null,
    "base_access_level": 10,
    "admin_cicd_variables": false,
    "admin_compliance_framework": false,
    "admin_group_member": false,
    "admin_merge_request": false,
    "admin_push_rules": false,
    "admin_terraform_state": false,
    "admin_vulnerability": false,
    "admin_web_hook": false,
    "archive_project": false,
    "manage_deploy_tokens": false,
    "manage_group_access_tokens": false,
    "manage_merge_request_settings": false,
    "manage_project_access_tokens": false,
    "manage_security_policy_link": false,
    "read_code": true,
    "read_runners": false,
    "read_dependency": false,
    "read_vulnerability": false,
    "remove_group": false,
    "remove_project": false
  }
]

インスタンスメンバーロールの作成

インスタンス全体のメンバーロールを作成します。

POST /member_roles

サポートされている属性は以下のとおりです:

属性必須説明
name文字列はいメンバーロールの名前。
description文字列いいえメンバーロールの説明。
base_access_level整数はい構成されたロールのベースアクセスレベル。有効な値は、10 (ゲスト)、15 (プランナー)、20 (レポーター)、30 (デベロッパー)、40 (メンテナー)、または50 (オーナー)です。
admin_cicd_variablesブール値いいえCI/CD変数の作成、読み取り、更新、削除の権限。
admin_compliance_frameworkブール値いいえコンプライアンスフレームワークを管理する権限。
admin_group_memberブール値いいえグループ内のメンバーを追加、削除、割り当てる権限。
admin_merge_requestブール値いいえマージリクエストを承認する権限。
admin_push_rulesブール値いいえグループレベルまたはプロジェクトレベルでリポジトリのプッシュルールを構成する権限。
admin_terraform_stateブール値いいえプロジェクトTerraformステートを管理する権限。
admin_vulnerabilityブール値いいえ脆弱性オブジェクトを編集する権限(ステータスの編集、イシューのリンクなど)。
admin_web_hookブール値いいえWebhookを管理する権限。
archive_projectブール値いいえプロジェクトをアーカイブする権限。
manage_deploy_tokensブール値いいえデプロイトークンを管理する権限。
manage_group_access_tokensブール値いいえグループアクセストークンを管理する権限。
manage_merge_request_settingsブール値いいえマージリクエストの設定を構成する権限。
manage_project_access_tokensブール値いいえプロジェクトアクセストークンを管理する権限。
manage_security_policy_linkブール値いいえセキュリティポリシープロジェクトをリンクする権限。
read_codeブール値いいえプロジェクトコードを読み取りる権限。
read_runnersブール値いいえプロジェクトRunnerを表示する権限。
read_dependencyブール値いいえプロジェクトの依存関係を読み取りる権限。
read_vulnerabilityブール値いいえプロジェクトの脆弱性を読み取りる権限。
remove_groupブール値いいえグループを削除または復元する権限。
remove_projectブール値いいえプロジェクトを削除する権限。

利用可能な権限の詳細については、カスタム権限を参照してください。

リクエスト例:

curl --request POST \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer <your_access_token>" \
  --data '{"name" : "Custom guest (instance)", "base_access_level" : 10, "read_code" : true}' \
  --url "https://gitlab.example.com/api/v4/member_roles"

レスポンス例:

{
  "id": 3,
  "name": "Custom guest (instance)",
  "group_id": null,
  "description": null,
  "base_access_level": 10,
  "admin_cicd_variables": false,
  "admin_compliance_framework": false,
  "admin_group_member": false,
  "admin_merge_request": false,
  "admin_push_rules": false,
  "admin_terraform_state": false,
  "admin_vulnerability": false,
  "admin_web_hook": false,
  "archive_project": false,
  "manage_deploy_tokens": false,
  "manage_group_access_tokens": false,
  "manage_merge_request_settings": false,
  "manage_project_access_tokens": false,
  "manage_security_policy_link": false,
  "read_code": true,
  "read_runners": false,
  "read_dependency": false,
  "read_vulnerability": false,
  "remove_group": false,
  "remove_project": false
}

インスタンスメンバーロールの削除

インスタンスからメンバーロールを削除します。

DELETE /member_roles/:member_role_id

サポートされている属性は以下のとおりです:

属性必須説明
member_role_id整数はいメンバーロールのID。

成功した場合は、204と空のレスポンスを返します。

リクエスト例:

curl --request DELETE \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/member_roles/1"

グループメンバーロールの管理

  • プラン: Ultimate
  • 提供形態: GitLab.com

前提要件:

  • グループのオーナーロールを持っている必要があります。

グループメンバーロールをすべて取得

GET /groups/:id/member_roles

サポートされている属性は以下のとおりです:

属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス

リクエスト例:

curl --request GET \
  --header "Authorization: Bearer <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/84/member_roles"

レスポンス例:

[
  {
    "id": 2,
    "name": "Guest + read code",
    "description": "Custom guest that can read code",
    "group_id": 84,
    "base_access_level": 10,
    "admin_cicd_variables": false,
    "admin_compliance_framework": false,
    "admin_group_member": false,
    "admin_merge_request": false,
    "admin_push_rules": false,
    "admin_terraform_state": false,
    "admin_vulnerability": false,
    "admin_web_hook": false,
    "archive_project": false,
    "manage_deploy_tokens": false,
    "manage_group_access_tokens": false,
    "manage_merge_request_settings": false,
    "manage_project_access_tokens": false,
    "manage_security_policy_link": false,
    "read_code": true,
    "read_runners": false,
    "read_dependency": false,
    "read_vulnerability": false,
    "remove_group": false,
    "remove_project": false
  },
  {
    "id": 3,
    "name": "Guest + security",
    "description": "Custom guest that read and admin security entities",
    "group_id": 84,
    "base_access_level": 10,
    "admin_cicd_variables": false,
    "admin_compliance_framework": false,
    "admin_group_member": false,
    "admin_merge_request": false,
    "admin_push_rules": false,
    "admin_terraform_state": false,
    "admin_vulnerability": true,
    "admin_web_hook": false,
    "archive_project": false,
    "manage_deploy_tokens": false,
    "manage_group_access_tokens": false,
    "manage_merge_request_settings": false,
    "manage_project_access_tokens": false,
    "manage_security_policy_link": false,
    "read_code": true,
    "read_runners": false,
    "read_dependency": true,
    "read_vulnerability": true,
    "remove_group": false,
    "remove_project": false
  }
]

グループへのメンバーロールの追加

メンバーロールをグループに追加します。グループのルートレベルでのみメンバーロールを追加できます。

POST /groups/:id/member_roles

パラメータは以下のとおりです:

属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
admin_cicd_variablesブール値いいえCI/CD変数の作成、読み取り、更新、削除の権限。
admin_compliance_frameworkブール値いいえコンプライアンスフレームワークを管理する権限。
admin_group_memberブール値いいえグループ内のメンバーを追加、削除、割り当てる権限。
admin_merge_requestブール値いいえマージリクエストを承認する権限。
admin_push_rulesブール値いいえグループレベルまたはプロジェクトレベルでリポジトリのプッシュルールを構成する権限。
admin_terraform_stateブール値いいえプロジェクトTerraformステートを管理する権限。
admin_vulnerabilityブール値いいえプロジェクトの脆弱性を管理する権限。
admin_web_hookブール値いいえWebhookを管理する権限。
archive_projectブール値いいえプロジェクトをアーカイブする権限。
manage_deploy_tokensブール値いいえデプロイトークンを管理する権限。
manage_group_access_tokensブール値いいえグループアクセストークンを管理する権限。
manage_merge_request_settingsブール値いいえマージリクエストの設定を構成する権限。
manage_project_access_tokensブール値いいえプロジェクトアクセストークンを管理する権限。
manage_security_policy_linkブール値いいえセキュリティポリシープロジェクトをリンクする権限。
read_codeブール値いいえプロジェクトコードを読み取りる権限。
read_runnersブール値いいえプロジェクトRunnerを表示する権限。
read_dependencyブール値いいえプロジェクトの依存関係を読み取りる権限。
read_vulnerabilityブール値いいえプロジェクトの脆弱性を読み取りる権限。
remove_groupブール値いいえグループを削除または復元する権限。
remove_projectブール値いいえプロジェクトを削除する権限。

リクエスト例:

curl --request POST \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer <your_access_token>" \
  --data '{"name" : "Custom guest", "base_access_level" : 10, "read_code" : true}' \
  --url "https://gitlab.example.com/api/v4/groups/84/member_roles"

レスポンス例:

{
  "id": 3,
  "name": "Custom guest",
  "description": null,
  "group_id": 84,
  "base_access_level": 10,
  "admin_cicd_variables": false,
  "admin_compliance_framework": false,
  "admin_group_member": false,
  "admin_merge_request": false,
  "admin_push_rules": false,
  "admin_terraform_state": false,
  "admin_vulnerability": false,
  "admin_web_hook": false,
  "archive_project": false,
  "manage_deploy_tokens": false,
  "manage_group_access_tokens": false,
  "manage_merge_request_settings": false,
  "manage_project_access_tokens": false,
  "manage_security_policy_link": false,
  "read_code": true,
  "read_runners": false,
  "read_dependency": false,
  "read_vulnerability": false,
  "remove_group": false,
  "remove_project": false
}

GitLab 16.3以降では、APIを使用して以下を実行できます:

グループのメンバーロールの削除

グループのメンバーロールを削除します。

DELETE /groups/:id/member_roles/:member_role_id
属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
member_role_id整数はいメンバーロールのID。

成功した場合は、204と空のレスポンスを返します。

リクエスト例:

curl --request DELETE \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/84/member_roles/1"