{{< details >}}
- Tier: Ultimate
- Offering: JihuLab.com, 私有化部署
{{< /details >}}
{{< history >}}
- 在极狐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 16.5 中移除了功能标志 admin_merge_request
。
- 在极狐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 中引入了管理组访问令牌。
- 在极狐GitLab 16.8 中引入了管理员 Terraform 状态。
- 在极狐GitLab 16.9 中允许在极狐GitLab私有化部署上创建和删除实例范围的自定义角色引入。
- 在极狐GitLab 17.9 中引入了管理员安全测试,使用名为 custom_ability_admin_security_testing
的功能标志。默认禁用。
{{< /history >}}
使用此 API 来和 JihuLab.com 群组或整个极狐GitLab 私有化部署实例的成员角色交互。
管理实例成员角色
{{< details >}}
- Tier: 旗舰版
- Offering: 私有化部署
{{< /details >}}
先决条件:
- 授权您自己作为 管理员。
获取所有实例成员角色
获取实例中的所有成员角色。
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 hooks 的权限。 |
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"
管理群组成员角色
{{< details >}}
- Tier: Ultimate
- Offering: JihuLab.com
{{< /details >}}
先决条件:
- 你必须拥有该群组的所有者角色。
获取所有群组成员角色
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
}
]
添加一个成员角色到群组
{{< history >}}
- 当创建自定义角色的时候新增名称和描述的能力引入于极狐GitLab 16.3。
{{< /history >}}
将成员角色添加到群组。你只能在群组的根级别添加成员角色。
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 hooks 的权限。 |
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"