成员角色 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
。默认禁用。- 功能标志
admin_merge_request
在极狐GitLab 16.5 中被移除。- 管理群组成员引入于极狐GitLab 16.5,使用名为
admin_group_member
的功能标志。默认禁用。该功能标志在极狐GitLab 16.6 中被移除。- 管理项目访问令牌引入于极狐GitLab 16.5,使用名为
manage_project_access_tokens
的功能标志。默认禁用。- 归档项目引入于极狐GitLab 16.7。
- 删除项目引入于极狐GitLab 16.8。
- 管理群组访问令牌引入于极狐GitLab 16.8。
- 管理Terraform状态引入于极狐GitLab 16.8。
- 在极狐GitLab 私有化部署实例上创建和移除示例级别的自定义角色引入于极狐GitLab 16.9。
管理实例成员角色
先决条件:
您可以获取、创建和删除实例范围内的成员角色。
获取所有的实例成员角色
获取实例上的所有成员角色。
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
支持的属性。
Attribute | Type | Required | Description |
---|---|---|---|
name |
string | yes | 成员角色的名称。 |
description |
string | no | 成员角色的描述。 |
base_access_level |
integer | yes | 配置角色的基础访问级别。有效值为 10 (访客)、 15 (计划者)、 20 (报告者)、 30 (开发者)、 40 (维护者) 或 50 (拥有者)。 |
admin_cicd_variables |
boolean | no | 创建、读、更新和删除 CI/CD 变量的权限。 |
admin_compliance_framework |
boolean | no | 管理合规框架的权限。 |
admin_group_member |
boolean | no | 在群组中添加、移除和分派成员的权限。 |
admin_merge_request |
boolean | no | 审核合并请求的权限。 |
admin_push_rules |
boolean | no | 在群组或项目级别配置仓库推送规则的权限。 |
admin_terraform_state |
boolean | no | 管理项目 terraform 状态的权限。 |
admin_vulnerability |
boolean | no | 编辑漏洞对象的权限,包括状态和链接的议题。 |
admin_web_hook |
boolean | no | 管理 webhook 的权限。 |
archive_project |
boolean | no | 归档项目的权限。 |
manage_deploy_tokens |
boolean | no | 管理部署令牌的权限。 |
manage_group_access_tokens |
boolean | no | 管理群组访问令牌的权限。 |
manage_merge_request_settings |
boolean | no | 配置合并请求设置的权限。 |
manage_project_access_tokens |
boolean | no | 配置项目访问令牌的权限。 |
manage_security_policy_link |
boolean | no | 链接安全策略项目的权限。 |
read_code |
boolean | no | 阅读项目代码的权限。 |
read_runners |
boolean | no | 查看项目 runner 的权限。 |
read_dependency |
boolean | no | 阅读项目依赖的权限。 |
read_vulnerability |
boolean | no | 阅读项目漏洞的权限。 |
remove_group |
boolean | no | 删除或恢复群组的权限。 |
remove_project |
boolean | no | 删除项目的权限。 |
更多可用权限的信息,可查看自定义权限。
示例请求:
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 | yes | 成员角色的 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"
管理群组成员角色
先决条件:
- 您必须具有群组的拥有者角色。
使用此 API 来管理群组成员角色。您只能在群组的根级别创建成员角色。
获取所有的群组成员角色
GET /groups/:id/member_roles
| 参数 | 类型 | 是否必需 | 描述 |
|——|—————-|——|———————————————————————————————————-|
| id
| integer/string | yes | 经过身份验证的用户拥有的群组的 ID 或 URL 编码的路径 |
Example request:
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
}
]
向群组添加成员角色
- 创建自定义角色时添加名称和描述的功能引入于极狐GitLab 16.3。
向群组添加成员角色
POST /groups/:id/member_roles
要向群组添加成员角色,该群组必须处于 root 级别(没有父群组)。
属性 | 类型 | 是否必需 | 描述 |
---|---|---|---|
id |
integer/string | yes | ID 或 群组的 URL 编码群组路径。 |
admin_cicd_variables |
boolean | no | 创建、阅读、更新和删除 CI/CD 变量的权限。 |
admin_compliance_framework |
boolean | no | 管理合规框架的权限。 |
admin_group_member |
boolean | no | 在群组中添加、移除和分配成员的权限。 |
admin_merge_request |
boolean | no | 审核合并请求的权限。 |
admin_push_rules |
boolean | no | 在群组或项目级别为仓库配置推送规则的权限。 |
admin_terraform_state |
boolean | no | 管理项目 terraform 状态的权限。 |
admin_vulnerability |
boolean | no | 管理项目漏洞的权限。 |
admin_web_hook |
boolean | no | 管理 webhook 的权限。 |
archive_project |
boolean | no | 归档项目的权限。 |
manage_deploy_tokens |
boolean | no | 管理部署令牌的权限。 |
manage_group_access_tokens |
boolean | no | 管理群组访问令牌的权限。 |
manage_merge_request_settings |
boolean | no | 配置合并请求设置的权限。 |
manage_project_access_tokens |
boolean | no | 管理项目访问令牌的权限。 |
manage_security_policy_link |
boolean | no | 链接安全策略项目的权限。 |
read_code |
boolean | no | 阅读项目代码的权限。 |
read_runners |
boolean | no | 查看项目 runner 的权限。 |
read_dependency |
boolean | no | 阅读项目依赖的权限。 |
read_vulnerability |
boolean | no | 阅读项目漏洞的权限。 |
remove_group |
boolean | no | 删除或恢复群组的权限。 |
remove_project |
boolean | no | 删除项目的权限。 |
请求示例:
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
}
In GitLab 16.3 and later, you can use the API to:
在 GitLab 16.3 及更高版本中,您可以使用 API:
- 创建新的自定义角色时添加名称(必需)和描述(可选)。
- 更新既有的自定义角色名称和描述。
移除群组的成员角色
移除群组的成员角色。
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"