グループおよびプロジェクトメンバー API

created_by フィールドは GitLab 14.10 で導入されました。

ロール

ユーザーまたはグループに割り当てられたロールはGitlab::Access モジュールでaccess_level として定義されます。

  • アクセス不可 (0)
  • 最小アクセス (5) (GitLab 13.5 で導入)
  • ゲスト (10)
  • レポーター (20)
  • 開発者 (30)
  • メンテナー (40)
  • オーナー (50).GitLab 14.9 以降のプロジェクトで有効です。
note
GitLab 14.9以降では、個人名前空間のプロジェクトはaccess_level50(Owner) になります。GitLab 14.8以前では、個人ネームスペースのプロジェクトはイシューによりaccess_level40 (メンテナー) になっています。

制限事項

group_saml_identity 属性は、SSO が有効なグループのグループオーナーにのみ表示されます。

email 属性は、あらゆる企業ユーザーのグループオーナーにのみ表示されます。

グループまたはプロジェクトの全メンバーの一覧表示

認証ユーザーが表示可能なグループまたはプロジェクトのメンバーのリストを取得します。直接のメンバーのみを返し、祖先グループを通じて継承されたメンバーは返しません。

この関数は、ページ分割パラメータpageper_page を受け取り、ユーザーのリストを制限します。

GET /groups/:id/members
GET /projects/:id/members
属性種類必須説明
id整数/文字列yes認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス
query文字列です。いいえメンバーを検索するクエリ文字列
user_ids整数の配列いいえ指定されたユーザーIDで結果をフィルタリング
skip_users整数の配列いいえスキップしたユーザーを結果から除外します。
show_seat_infobooleanいいえユーザーの座席情報を表示
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members"
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/: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-22T14:13:35Z",
    "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-22T14:13:35Z",
    "access_level": 30,
    "email": "john@example.com",
    "group_saml_identity": {
      "extern_uid":"ABC-1234567890",
      "provider": "group_saml",
      "saml_provider_id": 10
    }
  }
]

継承メンバーや招待メンバーを含む、グループまたはプロジェクトの全メンバーをリストアップしてください。

継承されたメンバー、招待されたユーザー、祖先グループを介した権限を含む、認証ユーザーが表示可能なグループまたはプロジェクトのメンバーのリストを取得します。

ユーザーがこのグループまたはプロジェクトのメンバーであり、1つ以上の祖先グループのメンバーでもある場合、最も高いaccess_level を持つメンバーシップのみが返されます。(GitLab13.11で改善されました。) これは、ユーザーの有効な権限を表します。

招待されたグループのメンバーは、以下のいずれかの場合に返されます:

  • 招待されたグループが公開されている場合。
  • 依頼者も招待グループのメンバーです。

この関数は、ページ分割パラメータpageper_page を受け取り、ユーザーのリストを制限します。

GET /groups/:id/members/all
GET /projects/:id/members/all
属性種類必須説明
id整数/文字列yes認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス
query文字列です。いいえメンバーを検索するクエリ文字列
user_ids整数の配列いいえ指定されたユーザーIDで結果をフィルタリング
show_seat_infobooleanいいえユーザーの座席情報を表示
state文字列です。いいえ加盟国、awaiting またはactive のいずれかで結果を絞り込みます。
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/all"
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/: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-22T14:13:35Z",
    "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-22T14:13:35Z",
    "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-22T14:13:35Z",
    "access_level": 30,
    "group_saml_identity": null
  }
]

グループまたはプロジェクトのメンバーの取得

グループまたはプロジェクトのメンバーを取得します。直接のメンバーのみを返し、祖先グループを通じて継承されたメンバーは返しません。

GET /groups/:id/members/:user_id
GET /projects/:id/members/:user_id
属性種類必須説明
id整数/文字列yes認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス
user_id整数。yesメンバーのユーザーID
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/:user_id"
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/: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
}

継承メンバーや招待メンバーを含む、グループやプロジェクトのメンバーの取得

GitLab 12.4で導入されました

グループやプロジェクトのメンバーを取得します。先祖グループから継承したメンバーや招待されたメンバーも含みます。詳細については、継承されたメンバーを一覧表示する対応するエンドポイントを参照ください。

GET /groups/:id/members/all/:user_id
GET /projects/:id/members/all/:user_id
属性種類必須説明
id整数/文字列yes認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス
user_id整数。yesメンバーのユーザーID
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/all/:user_id"
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/: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
}

グループのすべての請求可能メンバーをリストアップします。

GitLab 13.5 で導入されました

請求可能なグループメンバーのリストを取得します。このリストにはサブグループやプロジェクトのメンバーも含まれます。

この API エンドポイントは、トップレベルのグループに対してのみ機能します。サブグループでは動作しません。

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

GitLab 13.7 以降ではsearch パラメータを使って請求可能なグループメンバーを名前で検索し、sort を使って結果をソートします。

GET /groups/:id/billable_members
属性種類必須説明
id整数/文字列yes認証ユーザーが所有するグループのIDまたはURLエンコードされたパス
search文字列です。いいえ名前、ユーザー名、または公開Eメールによってグループメンバーを検索するためのクエリ文字列。
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>" "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"
  }
]

グループの請求可能なメンバーのメンバーシップのリスト

GitLab 13.11 で導入されました

グループの請求可能メンバーのメンバーシップのリストを取得します。

ユーザーがメンバーであるすべてのプロジェクトとグループを一覧表示します。グループ階層内のプロジェクトとグループのみが含まれます。例えば、要求されたグループがRoot Group で、要求されたユーザーがRoot Group / Sub Group OneOther Group / Sub Group Two の両方の直接のメンバーである場合、Other Group / Sub Group TwoRoot Group 階層内にないため、Root Group / Sub Group One のみが返されます。

応答は直接のメンバシップのみを表します。継承されたメンバシップは含まれません。

この API エンドポイントは、トップレベルのグループに対してのみ機能します。サブグループでは動作しません。

この API エンドポイントには、グループのメンバーシップを管理する権限が必要です。

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

GET /groups/:id/billable_members/:user_id/memberships
属性種類必須説明
id整数/文字列yes認証ユーザーが所有するグループのIDまたはURLエンコードされたパス
user_id整数。yes請求可能メンバーのユーザーID
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/billable_members/:user_id/memberships"

応答例

[
  {
    "id": 168,
    "source_id": 131,
    "source_full_name": "Root Group / Sub Group 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": "Root Group / Sub Group 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 を使用して削除できます。

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

グループ内のユーザーのメンバーシップ状態の変更

GitLab 15.0 で導入されました

グループ内のユーザーのメンバーシップ状態を変更します。この状態はすべてのサブグループとプロジェクトに適用されます。

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

応答例

{
  "success":true
}

グループやプロジェクトへのメンバーの追加

グループまたはプロジェクトにメンバーを追加します。

POST /groups/:id/members
POST /projects/:id/members
属性種類必須説明
id整数/文字列yes認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス
user_id整数/文字列yes新メンバーのユーザーID、またはカンマ区切りの複数のID
access_level整数。yes有効なアクセスレベル
expires_at文字列です。いいえ形式の日付文字列YEAR-MONTH-DAY
invite_source文字列です。いいえメンバー作成プロセスを開始する招待のソース。GitLabチームメンバーはこの機密イシューでより詳しい情報を見ることができます:https://gitlab.com/gitlab-org/gitlab/-/issues/327120>.
tasks_to_be_done文字列の配列。いいえ招待者がメンバーに注目してほしいタスク。タスクは指定されたプロジェクトのイシューとして追加されます。指定できる値は次のとおりです:cicodeissuesが指定された場合、tasks_project_idが必要です。GitLab 14.5 でinvite_members_for_taskというフラグとともに 導入されました。デフォルトでは無効です。
tasks_project_id整数。いいえタスク・イシューを作成するプロジェクトID。指定された場合、tasks_to_be_doneが必要です。GitLab 14.5 でinvite_members_for_taskというフラグで 導入されました。デフォルトでは無効です。
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"
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     --data "user_id=1&access_level=30" "https://gitlab.example.com/api/v4/projects/: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-22T14:13:35Z",
  "access_level": 30,
  "email": "john@example.com",
  "group_saml_identity": null
}

グループまたはプロジェクトのメンバーを編集します。

グループやプロジェクトのメンバーを更新します。

PUT /groups/:id/members/:user_id
PUT /projects/:id/members/:user_id
属性種類必須説明
id整数/文字列yes認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス
user_id整数。yesメンバーのユーザーID
access_level整数。yes有効なアクセスレベル
expires_at文字列です。いいえ形式の日付文字列YEAR-MONTH-DAY
member_role_id整数。いいえメンバーロールのID
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/:user_id?access_level=40"
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/: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-22T14:13:35Z",
  "access_level": 40,
  "email": "john@example.com",
  "group_saml_identity": null
}

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

GitLab 13.0から導入されました

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

POST /groups/:id/members/:user_id/override
属性種類必須説明
id整数/文字列yes認証ユーザーが所有するグループのIDまたはURLエンコードされたパス
user_id整数。yesメンバーのユーザーID
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "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-22T14:13:35Z",
  "access_level": 40,
  "email": "john@example.com",
  "override": true
}

グループのメンバーのオーバーライドを削除します。

GitLab 13.0から導入されました

上書きフラグをfalseに設定し、LDAPグループ同期がアクセスレベルをLDAP規定の値にリセットできるようにします。

DELETE /groups/:id/members/:user_id/override
属性種類必須説明
id整数/文字列yes認証ユーザーが所有するグループのIDまたはURLエンコードされたパス
user_id整数。yesメンバーのユーザーID
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "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
DELETE /projects/:id/members/:user_id
属性種類必須説明
id整数/文字列yes認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス
user_id整数。yesメンバーのユーザーID
skip_subresourcesbooleanfalseサブグループやプロジェクトにおける、削除されたメンバーの直接のメンバーの削除をスキップするかどうか。デフォルトはfalseです。
unassign_issuablesbooleanfalse削除されたメンバーを、指定されたグループやプロジェクト内のイシューやマージリクエストから外すかどうか。デフォルトはfalse です。

リクエストの例

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

グループのメンバー承認者

グループとそのサブグループ、プロジェクトに申請中のユーザーを承認します。

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

リクエストの例

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

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

グループとそのサブグループ、プロジェクトの保留中のユーザーをすべて承認します。

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

リクエストの例

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

グループとそのサブグループおよびプロジェクトの保留中のメンバーのリスト

GitLab 14.6で導入されました

グループとそのサブグループとプロジェクトについて、awaiting 状態のメンバー全員と、招待されているが GitLab アカウントを持っていないメンバーのリストを取得します。

このリクエストは、ルートグループの階層にあるすべてのグループとプロジェクトから、一致するすべてのグループとプロジェクトのメンバーを返します。

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

この API エンドポイントは、トップレベルのグループに対してのみ機能します。サブグループでは動作しません。

この API エンドポイントには、グループのメンバーを管理する権限が必要です。

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

GET /groups/:id/pending_members
属性種類必須説明
id整数/文字列yes認証ユーザーが所有するグループのIDまたはURLエンコードされたパス
curl --header "PRIVATE-TOKEN: <your_access_token>" "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
  }
]

グループにプロジェクトへのアクセス権を与えます。

プロジェクトをグループで共有するをご覧ください。