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

有効なアクセスレベル

アクセス・レベルはGitlab::Access モジュールで定義されています。現在、これらのレベルは認識されています:

  • アクセス不可 (0)
  • ゲスト (10)
  • レポーター (20)
  • 開発者 (30)
  • メンテナー (40)
  • オーナー (50) - グループに対してのみ有効。
注意:イシューにより、個人ネームスペースのプロジェクトではオーナー (](https://gitlab.com/gitlab-org/gitlab/-/issues/219299)) の権限が表示されません。

グループまたはプロジェクトの全メンバーのリスト

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

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

GET /groups/:id/members
GET /projects/:id/members
属性 タイプ 必須 説明
id 整数/文字列 はい 認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス
query いいえ メンバーを検索するためのクエリー文字列
user_ids 整数の配列 いいえ 指定されたユーザーIDで結果をフィルタリング
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",
    "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",
    "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 存在する場合)または access_levelプロジェクトグループの祖先チェーンの最初のグループに所属するユーザと一緒に一度だけ返されます。

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

GET /groups/:id/members/all
GET /projects/:id/members/all
属性 タイプ 必須 説明
id 整数/文字列 はい 認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス
query いいえ メンバーを検索するためのクエリー文字列
user_ids 整数の配列 いいえ 指定されたユーザーIDで結果をフィルタリング
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",
    "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",
    "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",
    "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 整数/文字列 はい 認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス
user_id 整数 はい 会員のユーザー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,
  "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 整数/文字列 はい 認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス
user_id 整数 はい 会員のユーザー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,
  "expires_at": null,
  "group_saml_identity": null
}

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

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

POST /groups/:id/members
POST /projects/:id/members
属性 タイプ 必須 説明
id 整数/文字列 はい 認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス
user_id 整数 はい 新会員のユーザーID
access_level 整数 はい 有効なアクセスレベル
expires_at いいえ YEAR-MONTH-DAY形式の日付文字列。
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",
  "expires_at": "2012-10-22T14:13:35Z",
  "access_level": 30,
  "group_saml_identity": null
}

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

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

PUT /groups/:id/members/:user_id
PUT /projects/:id/members/:user_id
属性 タイプ 必須 説明
id 整数/文字列 はい 認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス
user_id 整数 はい 会員のユーザーID
access_level 整数 はい 有効なアクセスレベル
expires_at いいえ YEAR-MONTH-DAY形式の日付文字列。
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",
  "expires_at": "2012-10-22T14:13:35Z",
  "access_level": 40,
  "group_saml_identity": null
}

グループメンバーのオーバーライドフラグの設定

GitLab 13.0から導入されました

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

POST /groups/:id/members/:user_id/override
属性 タイプ 必須 説明
id 整数/文字列 はい 認証されたユーザーが所有するグループのIDまたはURLエンコードされたパス
user_id 整数 はい 会員のユーザーID
curl --request PUT --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "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",
  "expires_at": "2012-10-22T14:13:35Z",
  "access_level": 40,
  "override": true
}

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

GitLab 13.0から導入されました

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

DELETE /groups/:id/members/:user_id/override
属性 タイプ 必須 説明
id 整数/文字列 はい 認証されたユーザーが所有するグループのIDまたはURLエンコードされたパス
user_id 整数 はい 会員のユーザーID
curl --request PUT --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "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",
  "expires_at": "2012-10-22T14:13:35Z",
  "access_level": 40,
  "override": false
}

グループまたはプロジェクトからのメンバーの削除

グループまたはプロジェクトからユーザーを削除します。

DELETE /groups/:id/members/:user_id
DELETE /projects/:id/members/:user_id
属性 タイプ 必須 説明
id 整数/文字列 はい 認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス
user_id 整数 はい 会員のユーザーID
unassign_issuables ブーリアン 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"

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

グループでのプロジェクト共有を見る