成员角色 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功能标志。 在 JihuLab.com 上,此功能不可用。

列出群组的所有成员角色

获取经过身份验证的用户可查看的群组成员角色列表。

GET /groups/:id/member_roles
参数 类型 是否必需 描述
id integer/string yes 经过身份验证的用户拥有的群组的 ID 或 URL 编码的路径

如果成功,则返回 200 及以下响应参数:

参数 类型 描述
[].id integer 成员角色 ID
[].name string 成员角色的名称
[].description string 成员角色的描述
[].group_id integer 成员角色所属群组的 ID
[].base_access_level integer 成员角色的基本访问级别。有效值为 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/84/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

要向群组添加成员角色,该群组必须处于 root 级别(没有父群组)。

参数 类型 是否必需 描述
id integer/string yes 经过身份验证的用户拥有的群组的 ID 或 URL 编码的路径
name string yes 成员角色的名称
description string no 成员角色的描述
base_access_level integer yes 配置角色的基本访问级别。有效值为 10(访客)、20(报告者)、30 (开发者)、40(维护者)或 50(所有者)
admin_merge_request boolean no 管理项目合并请求的权限
admin_vulnerability boolean no 管理项目漏洞的权限
read_code boolean no 读取项目代码的权限
read_dependency boolean no 读取项目依赖项的权限
read_vulnerability boolean no 读取项目漏洞的权限

如果成功,则返回 201 及以下参数:

参数 类型 描述
id integer 成员角色的 ID
name string 成员角色的名称
description string 成员角色的描述
group_id integer 成员角色所属的群组的 ID
base_access_level integer 成员角色的基本访问级别
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://gitlab.example.com/api/v4/groups/84/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
}

移除群组的成员角色

移除群组的成员角色。

DELETE /groups/:id/member_roles/:member_role_id
参数 类型 是否必需 描述
id integer/string yes 经过身份验证的用户拥有的群组的 ID 或 URL 编码的路径
member_role_id integer yes 成员角色的 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"