Help us learn about your current experience with the documentation. Take the survey.

成员角色 API

  • Tier: Ultimate
  • Offering: GitLab.com, GitLab Self-Managed

使用此 API 管理 GitLab.com 组或整个 GitLab Self-Managed 实例的成员角色。

管理实例成员角色

  • Tier: Ultimate
  • Offering: GitLab Self-Managed, GitLab Dedicated

前置条件:

获取所有实例成员角色

获取实例中的所有成员角色。

GET /member_roles

请求示例:

curl --header "Authorization: Bearer <your_access_token>" "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 string 成员角色的名称。
description string 成员角色的描述。
base_access_level integer 配置角色的基础访问级别。有效值为 10(访客)、15(规划者)、20(报告者)、30(开发者)、40(维护者)或 50(所有者)。
admin_cicd_variables boolean 创建、读取、更新和删除 CI/CD 变量的权限。
admin_compliance_framework boolean 管理合规框架的权限。
admin_group_member boolean 在组中添加、移除和分配成员的权限。
admin_merge_request boolean 批准合并请求的权限。
admin_push_rules boolean 在组或项目级别为存储库配置推送规则的权限。
admin_terraform_state boolean 管理 Terraform 状态的权限。
admin_vulnerability boolean 编辑漏洞对象(包括状态和关联议题)的权限。
admin_web_hook boolean 管理 Web 钩子的权限。
archive_project boolean 归档项目的权限。
manage_deploy_tokens boolean 管理部署令牌的权限。
manage_group_access_tokens boolean 管理组访问令牌的权限。
manage_merge_request_settings boolean 配置合并请求设置的权限。
manage_project_access_tokens boolean 管理项目访问令牌的权限。
manage_security_policy_link boolean 关联安全策略项目的权限。
read_code boolean 读取项目代码的权限。
read_runners boolean 查看项目 Runner 的权限。
read_dependency boolean 读取项目依赖项的权限。
read_vulnerability boolean 读取项目漏洞的权限。
remove_group boolean 删除或恢复组的权限。
remove_project boolean 删除项目的权限。

有关可用权限的更多信息,请参阅自定义权限

请求示例:

 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}' "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 integer 成员角色的 ID。

成功时返回 204 状态码和空响应。

请求示例:

curl --request DELETE --header "Content-Type: application/json" --header "Authorization: Bearer <your_access_token>" "https://gitlab.example.com/api/v4/member_roles/1"

管理组成员角色

  • Tier: Ultimate
  • Offering: GitLab.com

前置条件:

  • 您必须拥有该组所有者角色。

获取所有组成员角色

GET /groups/:id/member_roles

支持的属性:

属性 类型 必填 描述
id integer/string 组的 ID 或 URL 编码路径

请求示例:

curl --header "Authorization: Bearer <your_access_token>" "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 integer/string 组的 ID 或 URL 编码路径
admin_cicd_variables boolean 创建、读取、更新和删除 CI/CD 变量的权限。
admin_compliance_framework boolean 管理合规框架的权限。
admin_group_member boolean 在组中添加、移除和分配成员的权限。
admin_merge_request boolean 批准合并请求的权限。
admin_push_rules boolean 在组或项目级别为存储库配置推送规则的权限。
admin_terraform_state boolean 管理 Terraform 状态的权限。
admin_vulnerability boolean 管理漏洞的权限。
admin_web_hook boolean 管理 Web 钩子的权限。
archive_project boolean 归档项目的权限。
manage_deploy_tokens boolean 管理部署令牌的权限。
manage_group_access_tokens boolean 管理组访问令牌的权限。
manage_merge_request_settings boolean 配置合并请求设置的权限。
manage_project_access_tokens boolean 管理项目访问令牌的权限。
manage_security_policy_link boolean 关联安全策略项目的权限。
read_code boolean 读取项目代码的权限。
read_runners boolean 查看项目 Runner 的权限。
read_dependency boolean 读取项目依赖项的权限。
read_vulnerability boolean 读取项目漏洞的权限。
remove_group boolean 删除或恢复组的权限。
remove_project 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://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 integer/string 组的 ID 或 URL 编码路径
member_role_id integer 成员角色的 ID。

成功时返回 204 状态码和空响应。

请求示例:

curl --request DELETE --header "Content-Type: application/json" --header "Authorization: Bearer <your_access_token>" "https://gitlab.example.com/api/v4/groups/84/member_roles/1"