- 有効なアクセスレベル
- グループまたはプロジェクトの全メンバーのリスト
- 継承されたメンバーを含む、グループまたはプロジェクトの全メンバーのリスト
- グループやプロジェクトに参加
- 継承されたメンバーを含む、グループまたはプロジェクトのメンバーの取得
- グループやプロジェクトへのメンバーの追加
- グループまたはプロジェクトのメンバーの編集
- グループまたはプロジェクトからのメンバーの削除
- グループにプロジェクトへのアクセス権を与えます。
グループおよびプロジェクトメンバー API
有効なアクセスレベル
アクセス・レベルはGitlab::Access
モジュールで定義されています。現在、これらのレベルは認識されています:
- アクセス不可 (
0
) - ゲスト (
10
) - レポーター (
20
) - 開発者 (
30
) - メンテナー (
40
) - オーナー (
50
) - グループに対してのみ有効。
グループまたはプロジェクトの全メンバーのリスト
認証されたユーザーが表示可能なグループまたはプロジェクトのメンバーのリストを取得します。 直接のメンバーのみを返し、祖先グループを通じて継承されたメンバーは返しません。
この関数はページネーションパラメータpage
とper_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
プロジェクトグループの祖先チェーンの最初のグループに所属するユーザと一緒に一度だけ返されます。
この関数はページネーションパラメータpage
とper_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"
グループにプロジェクトへのアクセス権を与えます。
グループでのプロジェクト共有を見る