メンバーロール
- プラン: Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed
このAPIを使用して、GitLab.comグループまたはGitLab Self-Managedインスタンス全体のメンバーロールを操作します。
インスタンスメンバーロールの管理
- プラン: Ultimate
- 提供形態: GitLab Self-Managed、GitLab Dedicated
前提要件:
インスタンスメンバーロールをすべて取得
インスタンス内のすべてのメンバーロールを取得します。
GET /member_rolesリクエスト例:
curl --request GET \
--header "Authorization: Bearer <your_access_token>" \
--url "https://gitlab.example.com/api/v4/member_roles"レスポンス例:
[
{
"id": 2,
"name": "Instance custom role",
"description": "Custom guest that can read code",
"group_id": null,
"base_access_level": 10,
"admin_cicd_variables": false,
"admin_compliance_framework": false,
"admin_group_member": false,
"admin_merge_request": false,
"admin_push_rules": false,
"admin_terraform_state": false,
"admin_vulnerability": false,
"admin_web_hook": false,
"archive_project": false,
"manage_deploy_tokens": false,
"manage_group_access_tokens": false,
"manage_merge_request_settings": false,
"manage_project_access_tokens": false,
"manage_security_policy_link": false,
"read_code": true,
"read_runners": false,
"read_dependency": false,
"read_vulnerability": false,
"remove_group": false,
"remove_project": false
}
]インスタンスメンバーロールの作成
インスタンス全体のメンバーロールを作成します。
POST /member_rolesサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
name | 文字列 | はい | メンバーロールの名前。 |
description | 文字列 | いいえ | メンバーロールの説明。 |
base_access_level | 整数 | はい | 構成されたロールのベースアクセスレベル。有効な値は、10 (ゲスト)、15 (プランナー)、20 (レポーター)、30 (デベロッパー)、40 (メンテナー)、または50 (オーナー)です。 |
admin_cicd_variables | ブール値 | いいえ | CI/CD変数の作成、読み取り、更新、削除の権限。 |
admin_compliance_framework | ブール値 | いいえ | コンプライアンスフレームワークを管理する権限。 |
admin_group_member | ブール値 | いいえ | グループ内のメンバーを追加、削除、割り当てる権限。 |
admin_merge_request | ブール値 | いいえ | マージリクエストを承認する権限。 |
admin_push_rules | ブール値 | いいえ | グループレベルまたはプロジェクトレベルでリポジトリのプッシュルールを構成する権限。 |
admin_terraform_state | ブール値 | いいえ | プロジェクトTerraformステートを管理する権限。 |
admin_vulnerability | ブール値 | いいえ | 脆弱性オブジェクトを編集する権限(ステータスの編集、イシューのリンクなど)。 |
admin_web_hook | ブール値 | いいえ | Webhookを管理する権限。 |
archive_project | ブール値 | いいえ | プロジェクトをアーカイブする権限。 |
manage_deploy_tokens | ブール値 | いいえ | デプロイトークンを管理する権限。 |
manage_group_access_tokens | ブール値 | いいえ | グループアクセストークンを管理する権限。 |
manage_merge_request_settings | ブール値 | いいえ | マージリクエストの設定を構成する権限。 |
manage_project_access_tokens | ブール値 | いいえ | プロジェクトアクセストークンを管理する権限。 |
manage_security_policy_link | ブール値 | いいえ | セキュリティポリシープロジェクトをリンクする権限。 |
read_code | ブール値 | いいえ | プロジェクトコードを読み取りる権限。 |
read_runners | ブール値 | いいえ | プロジェクトRunnerを表示する権限。 |
read_dependency | ブール値 | いいえ | プロジェクトの依存関係を読み取りる権限。 |
read_vulnerability | ブール値 | いいえ | プロジェクトの脆弱性を読み取りる権限。 |
remove_group | ブール値 | いいえ | グループを削除または復元する権限。 |
remove_project | ブール値 | いいえ | プロジェクトを削除する権限。 |
利用可能な権限の詳細については、カスタム権限を参照してください。
リクエスト例:
curl --request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <your_access_token>" \
--data '{"name" : "Custom guest (instance)", "base_access_level" : 10, "read_code" : true}' \
--url "https://gitlab.example.com/api/v4/member_roles"レスポンス例:
{
"id": 3,
"name": "Custom guest (instance)",
"group_id": null,
"description": null,
"base_access_level": 10,
"admin_cicd_variables": false,
"admin_compliance_framework": false,
"admin_group_member": false,
"admin_merge_request": false,
"admin_push_rules": false,
"admin_terraform_state": false,
"admin_vulnerability": false,
"admin_web_hook": false,
"archive_project": false,
"manage_deploy_tokens": false,
"manage_group_access_tokens": false,
"manage_merge_request_settings": false,
"manage_project_access_tokens": false,
"manage_security_policy_link": false,
"read_code": true,
"read_runners": false,
"read_dependency": false,
"read_vulnerability": false,
"remove_group": false,
"remove_project": false
}インスタンスメンバーロールの削除
インスタンスからメンバーロールを削除します。
DELETE /member_roles/:member_role_idサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
member_role_id | 整数 | はい | メンバーロールのID。 |
成功した場合は、204と空のレスポンスを返します。
リクエスト例:
curl --request DELETE \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <your_access_token>" \
--url "https://gitlab.example.com/api/v4/member_roles/1"グループメンバーロールの管理
- プラン: Ultimate
- 提供形態: GitLab.com
前提要件:
- グループのオーナーロールを持っている必要があります。
グループメンバーロールをすべて取得
GET /groups/:id/member_rolesサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | グループのIDまたはURLエンコードされたパス。 |
リクエスト例:
curl --request GET \
--header "Authorization: Bearer <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/84/member_roles"レスポンス例:
[
{
"id": 2,
"name": "Guest + read code",
"description": "Custom guest that can read code",
"group_id": 84,
"base_access_level": 10,
"admin_cicd_variables": false,
"admin_compliance_framework": false,
"admin_group_member": false,
"admin_merge_request": false,
"admin_push_rules": false,
"admin_terraform_state": false,
"admin_vulnerability": false,
"admin_web_hook": false,
"archive_project": false,
"manage_deploy_tokens": false,
"manage_group_access_tokens": false,
"manage_merge_request_settings": false,
"manage_project_access_tokens": false,
"manage_security_policy_link": false,
"read_code": true,
"read_runners": false,
"read_dependency": false,
"read_vulnerability": false,
"remove_group": false,
"remove_project": false
},
{
"id": 3,
"name": "Guest + security",
"description": "Custom guest that read and admin security entities",
"group_id": 84,
"base_access_level": 10,
"admin_cicd_variables": false,
"admin_compliance_framework": false,
"admin_group_member": false,
"admin_merge_request": false,
"admin_push_rules": false,
"admin_terraform_state": false,
"admin_vulnerability": true,
"admin_web_hook": false,
"archive_project": false,
"manage_deploy_tokens": false,
"manage_group_access_tokens": false,
"manage_merge_request_settings": false,
"manage_project_access_tokens": false,
"manage_security_policy_link": false,
"read_code": true,
"read_runners": false,
"read_dependency": true,
"read_vulnerability": true,
"remove_group": false,
"remove_project": false
}
]グループへのメンバーロールの追加
メンバーロールをグループに追加します。グループのルートレベルでのみメンバーロールを追加できます。
POST /groups/:id/member_rolesパラメータは以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | グループのIDまたはURLエンコードされたパス。 |
admin_cicd_variables | ブール値 | いいえ | CI/CD変数の作成、読み取り、更新、削除の権限。 |
admin_compliance_framework | ブール値 | いいえ | コンプライアンスフレームワークを管理する権限。 |
admin_group_member | ブール値 | いいえ | グループ内のメンバーを追加、削除、割り当てる権限。 |
admin_merge_request | ブール値 | いいえ | マージリクエストを承認する権限。 |
admin_push_rules | ブール値 | いいえ | グループレベルまたはプロジェクトレベルでリポジトリのプッシュルールを構成する権限。 |
admin_terraform_state | ブール値 | いいえ | プロジェクトTerraformステートを管理する権限。 |
admin_vulnerability | ブール値 | いいえ | プロジェクトの脆弱性を管理する権限。 |
admin_web_hook | ブール値 | いいえ | Webhookを管理する権限。 |
archive_project | ブール値 | いいえ | プロジェクトをアーカイブする権限。 |
manage_deploy_tokens | ブール値 | いいえ | デプロイトークンを管理する権限。 |
manage_group_access_tokens | ブール値 | いいえ | グループアクセストークンを管理する権限。 |
manage_merge_request_settings | ブール値 | いいえ | マージリクエストの設定を構成する権限。 |
manage_project_access_tokens | ブール値 | いいえ | プロジェクトアクセストークンを管理する権限。 |
manage_security_policy_link | ブール値 | いいえ | セキュリティポリシープロジェクトをリンクする権限。 |
read_code | ブール値 | いいえ | プロジェクトコードを読み取りる権限。 |
read_runners | ブール値 | いいえ | プロジェクトRunnerを表示する権限。 |
read_dependency | ブール値 | いいえ | プロジェクトの依存関係を読み取りる権限。 |
read_vulnerability | ブール値 | いいえ | プロジェクトの脆弱性を読み取りる権限。 |
remove_group | ブール値 | いいえ | グループを削除または復元する権限。 |
remove_project | ブール値 | いいえ | プロジェクトを削除する権限。 |
リクエスト例:
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}' \
--url "https://gitlab.example.com/api/v4/groups/84/member_roles"レスポンス例:
{
"id": 3,
"name": "Custom guest",
"description": null,
"group_id": 84,
"base_access_level": 10,
"admin_cicd_variables": false,
"admin_compliance_framework": false,
"admin_group_member": false,
"admin_merge_request": false,
"admin_push_rules": false,
"admin_terraform_state": false,
"admin_vulnerability": false,
"admin_web_hook": false,
"archive_project": false,
"manage_deploy_tokens": false,
"manage_group_access_tokens": false,
"manage_merge_request_settings": false,
"manage_project_access_tokens": false,
"manage_security_policy_link": false,
"read_code": true,
"read_runners": false,
"read_dependency": false,
"read_vulnerability": false,
"remove_group": false,
"remove_project": false
}GitLab 16.3以降では、APIを使用して以下を実行できます:
- 新しいカスタムロールを作成するときに、名前(必須)と説明(オプション)を追加します。
- 既存のカスタムロールの名前と説明を更新します。
グループのメンバーロールの削除
グループのメンバーロールを削除します。
DELETE /groups/:id/member_roles/:member_role_id| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | グループのIDまたはURLエンコードされたパス。 |
member_role_id | 整数 | はい | メンバーロールのID。 |
成功した場合は、204と空のレスポンスを返します。
リクエスト例:
curl --request DELETE \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/84/member_roles/1"