멤버 역할 API
GitLab v19.3Offering: GitLab.com
요약
이 API를 사용하여 GitLab.com 그룹 또는 GitLab Self-Managed 인스턴스 전체의 멤버 역할과 상호작용합니다. 인스턴스의 모든 멤버 역할을 조회합니다. 인스턴스 전체 멤버 역할을 생성합니다. 사용 가능한 권한에 대한 자세한 내용은 커스텀 권한을 참조하세요.
이 API를 사용하여 GitLab.com 그룹 또는 GitLab Self-Managed 인스턴스 전체의 멤버 역할과 상호작용합니다.
인스턴스 멤버 역할 관리#
사전 조건:
- 관리자로 인증해야 합니다.
모든 인스턴스 멤버 역할 조회#
인스턴스의 모든 멤버 역할을 조회합니다.
GET /member_roles
요청 예시:
curl --request GET \
--header "Authorization: Bearer <your_access_token>" \
--url "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 |
문자열 | 예 | 멤버 역할의 이름. |
description |
문자열 | 아니요 | 멤버 역할의 설명. |
base_access_level |
정수 | 예 | 설정된 역할의 기본 액세스 수준. 유효한 값: 10 (Guest), 15 (Planner), 20 (Reporter), 25 (Security Manager), 30 (Developer), 40 (Maintainer), 50 (Owner). |
admin_cicd_variables |
불리언 | 아니요 | CI/CD 변수를 생성, 읽기, 업데이트 및 삭제하는 권한. |
admin_compliance_framework |
불리언 | 아니요 | 컴플라이언스 프레임워크를 관리하는 권한. |
admin_group_member |
불리언 | 아니요 | 그룹에서 멤버를 추가, 제거 및 할당하는 권한. |
admin_merge_request |
불리언 | 아니요 | 머지 리퀘스트를 승인하는 권한. |
admin_push_rules |
불리언 | 아니요 | 그룹 또는 프로젝트 수준에서 저장소의 푸시 규칙을 설정하는 권한. |
admin_terraform_state |
불리언 | 아니요 | 프로젝트 Terraform 상태를 관리하는 권한. |
admin_vulnerability |
불리언 | 아니요 | 상태 및 이슈 연결을 포함한 취약점 객체를 편집하는 권한. |
admin_web_hook |
불리언 | 아니요 | 웹 훅을 관리하는 권한. |
archive_project |
불리언 | 아니요 | 프로젝트를 보관하는 권한. |
manage_deploy_tokens |
불리언 | 아니요 | 배포 토큰을 관리하는 권한. |
manage_group_access_tokens |
불리언 | 아니요 | 그룹 액세스 토큰을 관리하는 권한. |
manage_merge_request_settings |
불리언 | 아니요 | 머지 리퀘스트 설정을 구성하는 권한. |
manage_project_access_tokens |
불리언 | 아니요 | 프로젝트 액세스 토큰을 관리하는 권한. |
manage_security_policy_link |
불리언 | 아니요 | 보안 정책 프로젝트를 연결하는 권한. |
read_code |
불리언 | 아니요 | 프로젝트 코드를 읽는 권한. |
read_runners |
불리언 | 아니요 | 프로젝트 러너를 보는 권한. |
read_dependency |
불리언 | 아니요 | 프로젝트 의존성을 읽는 권한. |
read_vulnerability |
불리언 | 아니요 | 프로젝트 취약점을 읽는 권한. |
remove_group |
불리언 | 아니요 | 그룹을 삭제하거나 복원하는 권한. |
remove_project |
불리언 | 아니요 | 프로젝트를 삭제하는 권한. |
사용 가능한 권한에 대한 자세한 내용은 커스텀 권한을 참조하세요.
요청 예시:
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}' \
--url "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 |
정수 | 예 | 멤버 역할의 ID. |
성공하면 204와 빈 응답을 반환합니다.
요청 예시:
curl --request DELETE \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <your_access_token>" \
--url "https://gitlab.example.com/api/v4/member_roles/1"
그룹 멤버 역할 관리#
사전 조건:
- 그룹의 Owner 역할이 있어야 합니다.
모든 그룹 멤버 역할 조회#
GET /groups/:id/member_roles
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
정수 또는 문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
요청 예시:
curl --request GET \
--header "Authorization: Bearer <your_access_token>" \
--url "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 can read and administer 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 |
정수 또는 문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로. |
admin_cicd_variables |
불리언 | 아니요 | CI/CD 변수를 생성, 읽기, 업데이트 및 삭제하는 권한. |
admin_compliance_framework |
불리언 | 아니요 | 컴플라이언스 프레임워크를 관리하는 권한. |
admin_group_member |
불리언 | 아니요 | 그룹에서 멤버를 추가, 제거 및 할당하는 권한. |
admin_merge_request |
불리언 | 아니요 | 머지 리퀘스트를 승인하는 권한. |
admin_push_rules |
불리언 | 아니요 | 그룹 또는 프로젝트 수준에서 저장소의 푸시 규칙을 설정하는 권한. |
admin_terraform_state |
불리언 | 아니요 | 프로젝트 Terraform 상태를 관리하는 권한. |
admin_vulnerability |
불리언 | 아니요 | 프로젝트 취약점을 관리하는 권한. |
admin_web_hook |
불리언 | 아니요 | 웹 훅을 관리하는 권한. |
archive_project |
불리언 | 아니요 | 프로젝트를 보관하는 권한. |
manage_deploy_tokens |
불리언 | 아니요 | 배포 토큰을 관리하는 권한. |
manage_group_access_tokens |
불리언 | 아니요 | 그룹 액세스 토큰을 관리하는 권한. |
manage_merge_request_settings |
불리언 | 아니요 | 머지 리퀘스트 설정을 구성하는 권한. |
manage_project_access_tokens |
불리언 | 아니요 | 프로젝트 액세스 토큰을 관리하는 권한. |
manage_security_policy_link |
불리언 | 아니요 | 보안 정책 프로젝트를 연결하는 권한. |
read_code |
불리언 | 아니요 | 프로젝트 코드를 읽는 권한. |
read_runners |
불리언 | 아니요 | 프로젝트 러너를 보는 권한. |
read_dependency |
불리언 | 아니요 | 프로젝트 의존성을 읽는 권한. |
read_vulnerability |
불리언 | 아니요 | 프로젝트 취약점을 읽는 권한. |
remove_group |
불리언 | 아니요 | 그룹을 삭제하거나 복원하는 권한. |
remove_project |
불리언 | 아니요 | 프로젝트를 삭제하는 권한. |
요청 예시:
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}' \
--url "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
}
API를 사용하여 다음을 수행할 수 있습니다:
- 새 커스텀 역할을 생성할 때 이름(필수)과 설명(선택)을 추가합니다.
- 기존 커스텀 역할의 이름과 설명을 업데이트합니다.
그룹 멤버 역할 제거#
그룹의 멤버 역할을 삭제합니다.
DELETE /groups/:id/member_roles/:member_role_id
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
정수 또는 문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로. |
member_role_id |
정수 | 예 | 멤버 역할의 ID. |
성공하면 204와 빈 응답을 반환합니다.
요청 예시:
curl --request DELETE \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/84/member_roles/1"