メンバーのロール API

フラグ: セルフマネジメントのGitLabでは、デフォルトではこの機能は利用できません。利用可能にするには、管理者がadmin_merge_requestという機能フラグを有効にします。GitLab.comでは、この機能は利用できません。

グループの全メンバーロールの一覧表示

認証済みユーザーが表示可能なグループ・メンバーのロール一覧を取得します。

GET /groups/:id/member_roles
属性種類必須説明
id整数/文字列yes認証ユーザーが所有するグループのIDまたはURLエンコードされたパス

成功した場合は、200 と以下のレスポンス属性を返します:

属性種類説明
[].id整数。メンバーロールのID。
[].name文字列です。メンバー・ロールの名前。
[].description文字列です。メンバー・ロールの説明。
[].group_id整数。メンバーロールが所属するグループの ID。
[].base_access_level整数。メンバーのロールの基本アクセスレベル。有効な値は 10 (ゲスト)、20 (レポーター)、30 (開発者)、40 (メンテナー)、または 50 (オーナー) です。
[].admin_merge_requestbooleanプロジェクトのマージリクエストを管理する権限で、download_code
[].admin_vulnerabilitybooleanプロジェクトの脆弱性を管理する権限。
[].read_codebooleanプロジェクトコードの読み取り権限。
[].read_dependencybooleanプロジェクトの依存関係の読み取り権限。
[].read_vulnerabilitybooleanプロジェクトの脆弱性の読み取り権限。

リクエストの例

curl --header "Authorization: Bearer <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/member_roles"

応答例

[
  {
    "id": 2,
    "name": "Custom + code",
    "description: "Custom guest that can read code",
    "group_id": 84,
    "base_access_level": 10,
    "admin_merge_request": false,
    "admin_vulnerability": false,
    "read_code": true,
    "read_dependency": false,
    "read_vulnerability": false
  },
  {
    "id": 3,
    "name": "Guest + security",
    "description: "Custom guest that read and admin security entities",
    "group_id": 84,
    "base_access_level": 10,
    "admin_merge_request": false,
    "admin_vulnerability": true,
    "read_code": false,
    "read_dependency": true,
    "read_vulnerability": true
  }
]

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

GitLab 16.3で導入されたカスタムロール作成時に名前と説明を追加する機能。

グループにメンバーロールを追加します。

POST /groups/:id/member_roles

グループにメンバロールを追加するには、そのグループがルートレベル(親グループがない)である必要があります。

属性種類必須説明
id整数/文字列yes認証されたユーザーが所有するグループのID またはURL エンコードされたパス
name文字列です。yesメンバー・ロールの名前。
description文字列です。いいえメンバー・ロールの説明。
base_access_level整数。yes設定されたロールの基本アクセスレベル。有効な値は10 (ゲスト)、20 (レポーター)、30 (開発者)、40 (メンテナー)、または50 (オーナー)です。
admin_merge_requestbooleanいいえプロジェクトのマージリクエストを管理する権限。
admin_vulnerabilitybooleanいいえプロジェクトの脆弱性を管理する権限。
read_codebooleanいいえプロジェクトコードの読み取り権限。
read_dependencybooleanいいえプロジェクトの依存関係の読み取り権限。
read_vulnerabilitybooleanいいえプロジェクトの脆弱性の読み取り権限。

成功すると、201 と以下の属性を返します:

属性種類説明
id整数。メンバーロールのID。
name文字列です。メンバー・ロールの名前。
description文字列です。メンバー・ロールの説明。
group_id整数。メンバーロールが所属するグループの ID。
base_access_level整数。メンバーロールの基本アクセスレベル。
admin_merge_requestbooleanプロジェクトのマージリクエストを管理する権限。
admin_vulnerabilitybooleanプロジェクトの脆弱性を管理する権限。
read_codebooleanプロジェクトコードの読み取り権限。
read_dependencybooleanプロジェクトの依存関係の読み取り権限。
read_vulnerabilitybooleanプロジェクトの脆弱性の読み取り権限。

リクエストの例

 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}' "https://example.gitlab.com/api/v4/groups/:id/member_roles"

応答例

{
  "id": 3,
  "name": "Custom guest",
  "description": null,
  "group_id": 84,
  "base_access_level": 10,
  "admin_merge_requests": false,
  "admin_vulnerability": false,
  "read_code": true,
  "read_dependency": false,
  "read_vulnerability": false
}

GitLab 16.3以降では、APIを使って以下のことができます:

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

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

DELETE /groups/:id/member_roles/:member_role_id
属性種類必須説明
id整数/文字列yes認証されたユーザーが所有するグループのID またはURL エンコードされたパス
member_role_id整数。yesメンバーロールのID。

成功した場合は、204 と空の応答を返します。

リクエストの例

curl --request DELETE --header "Content-Type: application/json" --header "Authorization: Bearer $YOUR_ACCESS_TOKEN" "https://example.gitlab.com/api/v4/groups/:group_id/member_roles/:member_role_id"