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"