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

グループメンバーAPI

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

このエンドポイントを使用して、グループメンバーとやり取りします。

プロジェクトメンバーについては、プロジェクトメンバーAPIを参照してください。

既知の問題

  • group_saml_identity属性とgroup_scim_identity属性は、SSOが有効なグループのグループオーナーのみに表示されます。
  • email属性は、APIリクエストがグループ自体、またはそのグループのサブグループまたはプロジェクトに送信される場合、グループのエンタープライズユーザーのグループオーナーのみに表示されます。

すべてのグループメンバーを一覧表示

指定されたグループのすべての直接メンバーを一覧表示します。直接メンバーのみを返し、祖先グループを介して継承されたメンバーや、招待されたグループのメンバーは返しません。

この関数は、ページネーションパラメータpageおよびper_pageを受け取り、ユーザーのリストを制限します。

GET /groups/:id/members
属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
query文字列いいえ指定された名前、メール、またはユーザー名に基づいて結果をフィルタリングします。クエリのスコープを広げるには、部分的な値を使用します。
user_ids整数の配列いいえ指定されたユーザーIDで結果をフィルタリングします。
skip_users整数の配列いいえスキップされたユーザーを結果から除外します。
show_seat_infoブール値いいえユーザーのシート情報を表示します。
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/members"

レスポンス例:

[
  {
    "id": 1,
    "username": "raymond_smith",
    "name": "Raymond Smith",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
    "web_url": "http://192.168.1.8:3000/root",
    "created_at": "2012-09-22T14:13:35Z",
    "created_by": {
      "id": 2,
      "username": "john_doe",
      "name": "John Doe",
      "state": "active",
      "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
      "web_url": "http://192.168.1.8:3000/root"
    },
    "expires_at": "2012-10-22",
    "access_level": 30,
    "group_saml_identity": null,
    "is_using_seat": true
  },
  {
    "id": 2,
    "username": "john_doe",
    "name": "John Doe",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
    "web_url": "http://192.168.1.8:3000/root",
    "created_at": "2012-09-22T14:13:35Z",
    "created_by": {
      "id": 1,
      "username": "raymond_smith",
      "name": "Raymond Smith",
      "state": "active",
      "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
      "web_url": "http://192.168.1.8:3000/root"
    },
    "expires_at": "2012-10-22",
    "access_level": 30,
    "email": "john@example.com",
    "group_saml_identity": {
      "extern_uid":"ABC-1234567890",
      "provider": "group_saml",
      "saml_provider_id": 10
    }
  }
]

継承されたメンバーと招待されたメンバーを含むすべてのグループメンバーを一覧表示

指定されたグループのすべてのメンバーを、継承されたメンバー、招待されたユーザー、および祖先グループを介した権限を含めて一覧表示します。

ユーザーがこのグループ、および1つ以上の祖先グループのメンバーである場合、access_levelが最も高いメンバーシップのみが返されます。これは、ユーザーの有効な権限を表します。

招待グループのメンバーは、次のいずれかの場合に返されます。

  • 招待グループが公開されている。
  • リクエスタも招待グループのメンバーである。
  • リクエスタが共有グループのメンバーである。

招待されたグループのメンバーは、共有グループで共有メンバーシップを持っています。つまり、リクエスタが共有グループのメンバーであるが、招待プライベートグループのメンバーではない場合、このエンドポイントを使用すると、リクエスタは招待プライベートグループのメンバーを含む、すべての共有グループのメンバーを取得できます。

この関数は、ページネーションパラメータpageおよびper_pageを受け取り、ユーザーのリストを制限します。

GET /groups/:id/members/all
属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
query文字列いいえ指定された名前、メール、またはユーザー名に基づいて結果をフィルタリングします。クエリのスコープを広げるには、部分的な値を使用します。
user_ids整数の配列いいえ指定されたユーザーIDで結果をフィルタリングします。
show_seat_infoブール値いいえユーザーのシート情報を表示します。
state文字列いいえメンバー状態(awaitingまたはactiveのいずれか)で結果をフィルタリングします。PremiumおよびUltimateのみ
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/members/all"

レスポンス例:

[
  {
    "id": 1,
    "username": "raymond_smith",
    "name": "Raymond Smith",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
    "web_url": "http://192.168.1.8:3000/root",
    "created_at": "2012-09-22T14:13:35Z",
    "created_by": {
      "id": 2,
      "username": "john_doe",
      "name": "John Doe",
      "state": "active",
      "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
      "web_url": "http://192.168.1.8:3000/root"
    },
    "expires_at": "2012-10-22",
    "access_level": 30,
    "group_saml_identity": null
  },
  {
    "id": 2,
    "username": "john_doe",
    "name": "John Doe",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
    "web_url": "http://192.168.1.8:3000/root",
    "created_at": "2012-09-22T14:13:35Z",
    "created_by": {
      "id": 1,
      "username": "raymond_smith",
      "name": "Raymond Smith",
      "state": "active",
      "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
      "web_url": "http://192.168.1.8:3000/root"
    },
    "expires_at": "2012-10-22",
    "access_level": 30,
    "email": "john@example.com",
    "group_saml_identity": {
      "extern_uid":"ABC-1234567890",
      "provider": "group_saml",
      "saml_provider_id": 10
    }
  },
  {
    "id": 3,
    "username": "foo_bar",
    "name": "Foo bar",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
    "web_url": "http://192.168.1.8:3000/root",
    "created_at": "2012-10-22T14:13:35Z",
    "created_by": {
      "id": 2,
      "username": "john_doe",
      "name": "John Doe",
      "state": "active",
      "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
      "web_url": "http://192.168.1.8:3000/root"
    },
    "expires_at": "2012-11-22",
    "access_level": 30,
    "group_saml_identity": null
  }
]

グループメンバーを取得する

グループの指定されたメンバーを取得します。祖先グループを介した継承メンバーではなく、直接メンバーのみを返します。

GET /groups/:id/members/:user_id
属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
user_id整数はいメンバーのユーザーID。
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/members/:user_id"

グループメンバーのカスタムロールを更新または削除するには、空のmember_role_id値を渡します。

# Updates a group membership
curl --request PUT --header "Content-Type: application/json" \
  --header "Authorization: Bearer <your_access_token>" \
  --data '{"member_role_id": null, "access_level": 10}' "https://gitlab.example.com/api/v4/groups/<group_id>/members/<user_id>"

レスポンス例:

{
  "id": 1,
  "username": "raymond_smith",
  "name": "Raymond Smith",
  "state": "active",
  "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
  "web_url": "http://192.168.1.8:3000/root",
  "access_level": 30,
  "email": "john@example.com",
  "created_at": "2012-10-22T14:13:35Z",
  "created_by": {
    "id": 2,
    "username": "john_doe",
    "name": "John Doe",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
    "web_url": "http://192.168.1.8:3000/root"
  },
  "expires_at": null,
  "group_saml_identity": null
}

継承されたメンバーや招待されたメンバーを含むグループメンバーを取得する

祖先グループを介して継承または招待されたメンバーを含む、グループの指定されたメンバーを取得します。詳細については、すべての継承メンバーをリストするを参照してください。

招待されたグループのメンバーは、共有グループで共有メンバーシップを持っています。つまり、リクエスタが共有グループのメンバーであるが、招待プライベートグループのメンバーではない場合、このエンドポイントを使用すると、リクエスタは招待プライベートグループのメンバーを含む、すべての共有グループのメンバーを取得できます。

GET /groups/:id/members/all/:user_id
属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
user_id整数はいメンバーのユーザーID。
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/members/all/:user_id"

レスポンス例:

{
  "id": 1,
  "username": "raymond_smith",
  "name": "Raymond Smith",
  "state": "active",
  "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
  "web_url": "http://192.168.1.8:3000/root",
  "access_level": 30,
  "created_at": "2012-10-22T14:13:35Z",
  "created_by": {
    "id": 2,
    "username": "john_doe",
    "name": "John Doe",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
    "web_url": "http://192.168.1.8:3000/root"
  },
  "email": "john@example.com",
  "expires_at": null,
  "group_saml_identity": null
}

すべての請求対象グループメンバーを一覧表示

指定されたグループのすべての請求対象メンバーを一覧表示します。このリストには、サブグループとプロジェクトのメンバーが含まれています。

前提条件:

  • 請求権限に示されているように、課金権限のAPIエンドポイントにアクセスするには、オーナーロールが必要です。
  • このAPIエンドポイントは、トップレベルグループでのみ機能します。サブグループでは機能しません。

この関数は、ページネーションパラメータpageおよびper_pageを受け取り、ユーザーのリストを制限します。

searchパラメータを使用して名前で請求対象グループメンバーを検索し、sortを使用して結果を並べ替えます。

GET /groups/:id/billable_members
属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
search文字列いいえ名前、ユーザー名、または公開メールアドレスでグループメンバーを検索するためのクエリ文字列。
sort文字列いいえ並べ替え属性と順序を指定するパラメータを含むクエリ文字列。以下にサポートされている値を示します。

sort属性でサポートされている値は次のとおりです。

説明
access_level_ascアクセスレベル、昇順
access_level_descアクセスレベル、降順
last_joined最終参加者
name_asc名前、昇順
name_desc名前、降順
oldest_joined最古の参加者
oldest_sign_in最古のサインイン
recent_sign_in最近のサインイン
last_activity_on_asc最終活動日、昇順
last_activity_on_desc最終活動日、降順
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/billable_members"

レスポンス例:

[
  {
    "id": 1,
    "username": "raymond_smith",
    "name": "Raymond Smith",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
    "web_url": "http://192.168.1.8:3000/root",
    "last_activity_on": "2021-01-27",
    "membership_type": "group_member",
    "removable": true,
    "created_at": "2021-01-03T12:16:02.000Z",
    "last_login_at": "2022-10-09T01:33:06.000Z"
  },
  {
    "id": 2,
    "username": "john_doe",
    "name": "John Doe",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
    "web_url": "http://192.168.1.8:3000/root",
    "email": "john@example.com",
    "last_activity_on": "2021-01-25",
    "membership_type": "group_member",
    "removable": true,
    "created_at": "2021-01-04T18:46:42.000Z",
    "last_login_at": "2022-09-29T22:18:46.000Z"
  },
  {
    "id": 3,
    "username": "foo_bar",
    "name": "Foo bar",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
    "web_url": "http://192.168.1.8:3000/root",
    "last_activity_on": "2021-01-20",
    "membership_type": "group_invite",
    "removable": false,
    "created_at": "2021-01-09T07:12:31.000Z",
    "last_login_at": "2022-10-10T07:28:56.000Z"
  }
]

請求対象グループメンバーのすべてのメンバーシップを一覧表示

グループの指定された請求対象メンバーのすべてのメンバーシップを一覧表示します。

前提条件:

  • 応答は、直接メンバーシップのみを表します。継承されたメンバーシップは含まれていません。
  • このAPIエンドポイントは、トップレベルグループでのみ機能します。サブグループでは機能しません。
  • このAPIエンドポイントを使用するには、グループのメンバーシップを管理するための権限が必要です。

ユーザーがメンバーであるすべてのプロジェクトとグループをリストします。グループ階層内のプロジェクトとグループのみが含まれます。たとえば、リクエストされたグループがTop-Level Groupで、リクエストされたユーザーがTop-Level Group / Subgroup OneOther Group / Subgroup Twoの両方の直接メンバーである場合、Other Group / Subgroup TwoTop-Level Group階層にないため、Top-Level Group / Subgroup Oneのみが返されます。

このAPIエンドポイントは、ページネーションパラメータpageper_pageを受け取り、メンバーシップのリストを制限します。

GET /groups/:id/billable_members/:user_id/memberships
属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
user_id整数はい請求対象メンバーのユーザーID。
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/billable_members/:user_id/memberships"

レスポンス例:

[
  {
    "id": 168,
    "source_id": 131,
    "source_full_name": "Top-Level Group / Subgroup One",
    "source_members_url": "https://gitlab.example.com/groups/root-group/sub-group-one/-/group_members",
    "created_at": "2021-03-31T17:28:44.812Z",
    "expires_at": "2022-03-21",
    "access_level": {
      "string_value": "Developer",
      "integer_value": 30
    }
  },
  {
    "id": 169,
    "source_id": 63,
    "source_full_name": "Top-Level Group / Subgroup One / My Project",
    "source_members_url": "https://gitlab.example.com/root-group/sub-group-one/my-project/-/project_members",
    "created_at": "2021-03-31T17:29:14.934Z",
    "expires_at": null,
    "access_level": {
      "string_value": "Maintainer",
      "integer_value": 40
    }
  }
]

請求対象グループメンバーのすべての間接メンバーシップを一覧表示

  • ステータス: 実験的機能

グループの請求対象メンバーの間接的なメンバーシップのリストを取得します。

前提条件:

  • このAPIエンドポイントは、トップレベルグループでのみ機能します。サブグループでは機能しません。
  • このAPIエンドポイントを使用するには、グループのメンバーシップを管理するための権限が必要です。

ユーザーがメンバーであることに加えて、リクエストされたトップレベルグループに招待されたすべてのプロジェクトとグループをリストします。たとえば、リクエストされたグループがTop-Level Groupで、リクエストされたユーザーがOther Group / Subgroup TwoTop-Level Groupに招待された)の直接メンバーである場合、Other Group / Subgroup Twoのみが返されます。

応答は、間接メンバーシップのみをリストします。直接メンバーシップは含まれません。

このAPIエンドポイントは、ページネーションパラメータpageper_pageを受け取り、メンバーシップのリストを制限します。

GET /groups/:id/billable_members/:user_id/indirect
属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
user_id整数はい請求対象メンバーのユーザーID。
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/billable_members/:user_id/indirect"

レスポンス例:

[
  {
    "id": 168,
    "source_id": 132,
    "source_full_name": "Invited Group / Subgroup One",
    "source_members_url": "https://gitlab.example.com/groups/invited-group/sub-group-one/-/group_members",
    "created_at": "2021-03-31T17:28:44.812Z",
    "expires_at": "2022-03-21",
    "access_level": {
      "string_value": "Developer",
      "integer_value": 30
    }
  }
]

請求対象グループメンバーを削除

指定された請求対象メンバーをグループとそのサブグループおよびプロジェクトから削除します。

削除の対象となるユーザーがグループメンバーである必要はありません。たとえば、ユーザーがグループ内のプロジェクトに直接追加された場合でも、このAPIエンドポイントを使用してユーザーを削除できます。

非同期でメンバーを削除するため、変更が完了するまでに数分かかります。

DELETE /groups/:id/billable_members/:user_id
属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
user_id整数はいメンバーのユーザーID。
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/billable_members/:user_id"

ユーザーのグループメンバーシップステータスを変更

グループ内の指定されたユーザーのメンバーシップステータスを変更します。

ユーザーが無料ユーザーの制限を超えている場合、グループまたはプロジェクトのユーザーメンバーシップ状態をawaitingまたはactiveに変更すると、ユーザーはそのグループまたはプロジェクトにアクセスできるようになります。この変更は、すべてのサブグループおよびプロジェクトに適用されます。

PUT /groups/:id/members/:user_id/state
属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
user_id整数はいメンバーのユーザーID。
state文字列はいユーザーの新しい状態。状態はawaitingactiveのいずれかです。
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/members/:user_id/state?state=active"

レスポンス例:

{
  "success":true
}

グループメンバーを追加

指定されたグループにメンバーを追加します。

POST /groups/:id/members
属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
user_id整数または文字列はい(usernameが指定されていない場合)新しいメンバーのユーザーID、またはカンマで区切られた複数のID。
username文字列はい(user_idが指定されていない場合)新しいメンバーのユーザー名、またはカンマで区切られた複数のユーザー名。
access_level整数はい有効なアクセスレベル。使用可能な値: 0 (アクセスなし), 5 (最小アクセス), 10 (ゲスト), 15 (プランナー), 20 (レポーター), 25 (セキュリティマネージャー), 30 (デベロッパー), 40 (メンテナー), 50 (オーナー)。デフォルト: 30
expires_at文字列いいえYEAR-MONTH-DAY形式の日付文字列。
invite_source文字列いいえメンバー作成プロセスを開始する招待のソース。GitLabのチームメンバーは、この機密情報イシュー(https://gitlab.com/gitlab-org/gitlab/-/issues/327120>)で詳細情報を確認できます。
member_role_id整数いいえUltimateのみ。カスタムメンバーロールのID。
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     --data "user_id=1&access_level=30" "https://gitlab.example.com/api/v4/groups/:id/members"

レスポンス例:

{
  "id": 1,
  "username": "raymond_smith",
  "name": "Raymond Smith",
  "state": "active",
  "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
  "web_url": "http://192.168.1.8:3000/root",
  "created_at": "2012-10-22T14:13:35Z",
  "created_by": {
    "id": 2,
    "username": "john_doe",
    "name": "John Doe",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
    "web_url": "http://192.168.1.8:3000/root"
  },
  "expires_at": "2012-10-22",
  "access_level": 30,
  "email": "john@example.com",
  "group_saml_identity": null
}

ロールのプロモートに対する管理者承認が有効になっている場合、既存ユーザーを請求対象ロールにプロモートするメンバーシップリクエストには、管理者の承認が必要です。

請求対象でないプロモーションの管理を有効にするには、最初にenable_member_promotion_managementアプリケーション設定を有効にする必要があります。

単一のユーザーをキューに入れる例:

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     --data "user_id=1&access_level=30" "https://gitlab.example.com/api/v4/groups/:id/members"
{
  "message":{
    "username_1":"Request queued for administrator approval."
  }
}

複数のユーザーをキューに入れる例:

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     --data "user_id=1,2&access_level=30" "https://gitlab.example.com/api/v4/groups/:id/members"
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     --data "user_id=1,2&access_level=30" "https://gitlab.example.com/api/v4/projects/:id/members"
{
  "queued_users": {
    "username_1": "Request queued for administrator approval.",
    "username_2": "Request queued for administrator approval."
  },
  "status": "success"
}

グループメンバーを更新

グループの指定されたメンバーを更新します。

PUT /groups/:id/members/:user_id
属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
user_id整数はいメンバーのユーザーID。
access_level整数はい有効なアクセスレベル。使用可能な値: 0 (アクセスなし), 5 (最小アクセス), 10 (ゲスト), 15 (プランナー), 20 (レポーター), 25 (セキュリティマネージャー), 30 (デベロッパー), 40 (メンテナー), 50 (オーナー), 60 (管理者)。デフォルトは30です。
expires_at文字列いいえYEAR-MONTH-DAY形式の日付文字列。
member_role_id整数いいえUltimateのみ。カスタムメンバーロールのID。値を指定しない場合は、すべてのロールを削除します。
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/members/:user_id?access_level=40"

レスポンス例:

{
  "id": 1,
  "username": "raymond_smith",
  "name": "Raymond Smith",
  "state": "active",
  "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
  "web_url": "http://192.168.1.8:3000/root",
  "created_at": "2012-10-22T14:13:35Z",
  "created_by": {
    "id": 2,
    "username": "john_doe",
    "name": "John Doe",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
    "web_url": "http://192.168.1.8:3000/root"
  },
  "expires_at": "2012-10-22",
  "access_level": 40,
  "email": "john@example.com",
  "group_saml_identity": null
}

ロールのプロモートに対する管理者承認が有効になっている場合、既存ユーザーを請求対象ロールにプロモートするメンバーシップリクエストには、管理者の承認が必要です。

請求対象でないプロモーションの管理を有効にするには、最初にenable_member_promotion_managementアプリケーション設定を有効にする必要があります。

レスポンス例:

{
  "message":{
    "username_1":"Request queued for administrator approval."
  }
}

グループのメンバーにオーバーライドフラグを設定する

デフォルトでは、LDAPグループメンバーのアクセスレベルは、グループ同期を通してLDAPによって指定された値に設定されます。このエンドポイントを呼び出すことで、アクセスレベルのオーバーライドを許可できます。

POST /groups/:id/members/:user_id/override
属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
user_id整数はいメンバーのユーザーID。
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/members/:user_id/override"

レスポンス例:

{
  "id": 1,
  "username": "raymond_smith",
  "name": "Raymond Smith",
  "state": "active",
  "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
  "web_url": "http://192.168.1.8:3000/root",
  "created_at": "2012-10-22T14:13:35Z",
  "created_by": {
    "id": 2,
    "username": "john_doe",
    "name": "John Doe",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
    "web_url": "http://192.168.1.8:3000/root"
  },
  "expires_at": "2012-10-22",
  "access_level": 40,
  "email": "john@example.com",
  "override": true
}

グループのメンバーに対するオーバーライドを削除する

オーバーライドフラグをfalseに設定し、LDAPグループ同期が、アクセスレベルをLDAPで指定された値にリセットできるようにします。

DELETE /groups/:id/members/:user_id/override
属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
user_id整数はいメンバーのユーザーID。
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/members/:user_id/override"

レスポンス例:

{
  "id": 1,
  "username": "raymond_smith",
  "name": "Raymond Smith",
  "state": "active",
  "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
  "web_url": "http://192.168.1.8:3000/root",
  "created_at": "2012-10-22T14:13:35Z",
  "created_by": {
    "id": 2,
    "username": "john_doe",
    "name": "John Doe",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
    "web_url": "http://192.168.1.8:3000/root"
  },
  "expires_at": "2012-10-22",
  "access_level": 40,
  "email": "john@example.com",
  "override": false
}

グループメンバーを削除

ユーザーに明示的にロールが割り当てられているグループから、指定されたユーザーを削除します。

削除の対象となるユーザーがグループメンバーである必要があります。たとえば、ユーザーがグループ内のプロジェクトに直接追加されたが、このグループには明示的に追加されていない場合、このAPIエンドポイントを使用して削除することはできません。代替アプローチについては、グループから請求対象メンバーを削除するを参照してください。

DELETE /groups/:id/members/:user_id
属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
user_id整数はいメンバーのユーザーID。
skip_subresourcesブール値falseサブグループおよびプロジェクトの削除されたメンバーの直接メンバーシップを削除することをスキップするかどうか。デフォルトはfalseです。
unassign_issuablesブール値false特定のグループまたはプロジェクト内で、イシューまたはマージリクエストから、削除されたメンバーの割り当てを解除する必要があるかどうか。デフォルトはfalseです。

リクエスト例:

curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/members/:user_id"
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/members/:user_id"

グループメンバーを承認

指定された保留中のユーザーをグループとそのサブグループおよびプロジェクトで承認します。

PUT /groups/:id/members/:member_id/approve
属性必須説明
id整数または文字列はいトップレベルグループのIDまたはURLエンコードされたパス
member_id整数はいメンバーのID。

リクエスト例:

curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/members/:member_id/approve"

すべての保留中のグループメンバーを承認

指定されたグループとそのサブグループおよびプロジェクトのすべての保留中のユーザーを承認します。

POST /groups/:id/members/approve_all
属性必須説明
id整数または文字列はいトップレベルグループのIDまたはURLエンコードされたパス

リクエスト例:

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

グループとそのサブグループおよびプロジェクト内のすべての保留中のグループメンバーを一覧表示

awaiting状態のすべてのメンバーと、招待されているがGitLabアカウントを持っていないメンバーを、指定されたグループとそのサブグループおよびプロジェクトで一覧表示します。

前提条件:

  • このAPIエンドポイントは、トップレベルグループでのみ機能します。サブグループでは機能しません。
  • このAPIエンドポイントには、グループのメンバーを管理するための権限が必要です。

このリクエストは、トップレベルグループの階層内のすべてのグループおよびプロジェクトから、一致するすべてのグループメンバーとプロジェクトメンバーを返します。

メンバーがまだGitLabアカウントにサインアップしていない招待ユーザーである場合、招待メールアドレスが返されます。

このAPIエンドポイントは、ページネーションパラメータpageper_pageを受け取り、メンバーのリストを制限します。

GET /groups/:id/pending_members
属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/pending_members"

レスポンス例:

[
  {
    "id": 168,
    "name": "Alex Garcia",
    "username": "alex_garcia",
    "email": "alex@example.com",
    "avatar_url": "http://example.com/uploads/user/avatar/1/cd8.jpeg",
    "web_url": "http://example.com/alex_garcia",
    "approved": false,
    "invited": false
  },
  {
    "id": 169,
    "email": "sidney@example.com",
    "avatar_url": "http://gravatar.com/../e346561cd8.jpeg",
    "approved": false,
    "invited": true
  },
  {
    "id": 170,
    "email": "zhang@example.com",
    "avatar_url": "http://gravatar.com/../e32131cd8.jpeg",
    "approved": true,
    "invited": true
  }
]