メンバーのロール API
- GitLab 15.4 で導入。
customizable_roles
フラグの背後でデプロイされ、デフォルトでは無効になっています。- GitLab 15.9ではデフォルトで有効。
- GitLab 16.0で読み取り脆弱性を追加。
- GitLab 16.1で管理者の脆弱性が追加されました。
- GitLab 16.3で読み取り依存性が追加されました。
- GitLab 16.3で名前と説明フィールドを追加。
- GitLab 16.4で導入された管理者のマージリクエスト 。
admin_merge_request
というフラグがあります。デフォルトでは無効。
フラグ: セルフマネジメントのGitLabでは、デフォルトではこの機能は利用できません。利用可能にするには、管理者がadmin_merge_request
という機能フラグを有効にします。GitLab.comでは、この機能は利用できません。
グループの全メンバーロールの一覧表示
認証済みユーザーが表示可能なグループ・メンバーのロール一覧を取得します。
GET /groups/:id/member_roles
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 整数/文字列 | yes | 認証ユーザーが所有するグループのIDまたはURLエンコードされたパス |
成功した場合は、200
と以下のレスポンス属性を返します:
属性 | 種類 | 説明 |
---|---|---|
[].id | 整数。 | メンバーロールのID。 |
[].name | 文字列です。 | メンバー・ロールの名前。 |
[].description | 文字列です。 | メンバー・ロールの説明。 |
[].group_id | 整数。 | メンバーロールが所属するグループの ID。 |
[].base_access_level | 整数。 | メンバーのロールの基本アクセスレベル。有効な値は 10 (ゲスト)、20 (レポーター)、30 (開発者)、40 (メンテナー)、または 50 (オーナー) です。 |
[].admin_merge_request | boolean | プロジェクトのマージリクエストを管理する権限で、download_code 。 |
[].admin_vulnerability | boolean | プロジェクトの脆弱性を管理する権限。 |
[].read_code | boolean | プロジェクトコードの読み取り権限。 |
[].read_dependency | boolean | プロジェクトの依存関係の読み取り権限。 |
[].read_vulnerability | boolean | プロジェクトの脆弱性の読み取り権限。 |
リクエストの例
curl --header "Authorization: Bearer <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/member_roles"
応答例
[
{
"id": 2,
"name": "Custom + code",
"description: "Custom guest that can read code",
"group_id": 84,
"base_access_level": 10,
"admin_merge_request": false,
"admin_vulnerability": false,
"read_code": true,
"read_dependency": false,
"read_vulnerability": false
},
{
"id": 3,
"name": "Guest + security",
"description: "Custom guest that read and admin security entities",
"group_id": 84,
"base_access_level": 10,
"admin_merge_request": false,
"admin_vulnerability": true,
"read_code": false,
"read_dependency": true,
"read_vulnerability": true
}
]
グループへのメンバーロールの追加
GitLab 16.3で導入されたカスタムロール作成時に名前と説明を追加する機能。
グループにメンバーロールを追加します。
POST /groups/:id/member_roles
グループにメンバロールを追加するには、そのグループがルートレベル(親グループがない)である必要があります。
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 整数/文字列 | yes | 認証されたユーザーが所有するグループのID またはURL エンコードされたパス。 |
name | 文字列です。 | yes | メンバー・ロールの名前。 |
description | 文字列です。 | いいえ | メンバー・ロールの説明。 |
base_access_level | 整数。 | yes | 設定されたロールの基本アクセスレベル。有効な値は10 (ゲスト)、20 (レポーター)、30 (開発者)、40 (メンテナー)、または50 (オーナー)です。 |
admin_merge_request | boolean | いいえ | プロジェクトのマージリクエストを管理する権限。 |
admin_vulnerability | boolean | いいえ | プロジェクトの脆弱性を管理する権限。 |
read_code | boolean | いいえ | プロジェクトコードの読み取り権限。 |
read_dependency | boolean | いいえ | プロジェクトの依存関係の読み取り権限。 |
read_vulnerability | boolean | いいえ | プロジェクトの脆弱性の読み取り権限。 |
成功すると、201
と以下の属性を返します:
属性 | 種類 | 説明 |
---|---|---|
id | 整数。 | メンバーロールのID。 |
name | 文字列です。 | メンバー・ロールの名前。 |
description | 文字列です。 | メンバー・ロールの説明。 |
group_id | 整数。 | メンバーロールが所属するグループの ID。 |
base_access_level | 整数。 | メンバーロールの基本アクセスレベル。 |
admin_merge_request | boolean | プロジェクトのマージリクエストを管理する権限。 |
admin_vulnerability | boolean | プロジェクトの脆弱性を管理する権限。 |
read_code | boolean | プロジェクトコードの読み取り権限。 |
read_dependency | boolean | プロジェクトの依存関係の読み取り権限。 |
read_vulnerability | boolean | プロジェクトの脆弱性の読み取り権限。 |
リクエストの例
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}' "https://example.gitlab.com/api/v4/groups/:id/member_roles"
応答例
{
"id": 3,
"name": "Custom guest",
"description": null,
"group_id": 84,
"base_access_level": 10,
"admin_merge_requests": false,
"admin_vulnerability": false,
"read_code": true,
"read_dependency": false,
"read_vulnerability": false
}
GitLab 16.3以降では、APIを使って以下のことができます:
- 新しいカスタムロールを作成する際に、名前(必須)と説明(任意)を追加します。
- 既存のカスタムロールの名前と説明を更新します。
グループのメンバーロールの削除
グループのメンバーロールを削除します。
DELETE /groups/:id/member_roles/:member_role_id
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 整数/文字列 | yes | 認証されたユーザーが所有するグループのID またはURL エンコードされたパス。 |
member_role_id | 整数。 | yes | メンバーロールのID。 |
成功した場合は、204
と空の応答を返します。
リクエストの例
curl --request DELETE --header "Content-Type: application/json" --header "Authorization: Bearer $YOUR_ACCESS_TOKEN" "https://example.gitlab.com/api/v4/groups/:group_id/member_roles/:member_role_id"