멤버 역할 API
Tier: Ultimate
Offering: GitLab.com
Offering: GitLab.com
- 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 상태’ 도입.
그룹의 모든 멤버 역할 나열
인증된 사용자가 볼 수 있는 그룹 멤버 역할 디렉터리을 가져옵니다.
GET /groups/:id/member_roles
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 그룹의 ID 또는 URL-인코딩 경로 |
성공하면 200
및 다음과 같은 응답 속성 반환:
속성 | 유형 | 설명 |
---|---|---|
[].id
| 정수 | 멤버 역할의 ID |
[].name
| 문자열 | 멤버 역할의 이름 |
[].description
| 문자열 | 멤버 역할의 설명 |
[].group_id
| 정수 | 멤버 역할이 속한 그룹의 ID |
[].base_access_level
| 정수 | 멤버 역할의 기본 액세스 레벨. 유효한 값은 10 (손님), 20 (보고자), 30 (개발자), 40 (유지보수자), 또는 50 (소유자)입니다. |
[].admin_merge_request
| 부울 | 프로젝트 머지 요청을 관리하고 download_code 기능을 사용할 권한
|
[].admin_terraform_state
| 부울 | 프로젝트 terraform 상태를 관리하는 권한 |
[].admin_vulnerability
| 부울 | 프로젝트 취약점을 관리하는 권한 |
[].read_code
| 부울 | 프로젝트 코드를 읽을 권한 |
[].read_dependency
| 부울 | 프로젝트 의존성을 읽는 권한 |
[].read_vulnerability
| 부울 | 프로젝트 취약점을 읽는 권한 |
[].admin_group_member
| 부울 | 그룹 멤버를 관리하는 권한 |
[].manage_project_access_tokens
| 부울 | 프로젝트 액세스 토큰을 관리하는 권한 |
[].archive_project
| 부울 | 프로젝트를 아카이브하는 권한 |
[].remove_project
| 부울 | 프로젝트를 삭제하는 권한 |
[].manage_group_access_tokens
| 부울 | 그룹 액세스 토큰을 관리하는 권한 |
예시 요청:
curl --header "Authorization: Bearer <your_access_token>" "https://gitlab.example.com/api/v4/groups/84/member_roles"
예시 응답:
[
{
"id": 2,
"name": "Custom + code",
"description": "코드를 읽을 수 있는 사용자 정의 손님",
"group_id": 84,
"base_access_level": 10,
"admin_merge_request": false,
"admin_terraform_state": false,
"admin_vulnerability": false,
"read_code": true,
"read_dependency": false,
"read_vulnerability": false,
"manage_group_access_tokens": false,
"manage_project_access_tokens": false,
"archive_project": false,
"remove_project": false
},
{
"id": 3,
"name": "Guest + security",
"description": "보안 엔터티를 읽고 관리할 수 있는 사용자 정의 손님",
"group_id": 84,
"base_access_level": 10,
"admin_vulnerability": true,
"admin_merge_request": false,
"admin_terraform_state": false,
"read_code": false,
"read_dependency": true,
"read_vulnerability": true,
"manage_group_access_tokens": false,
"manage_project_access_tokens": false,
"archive_project": false,
"remove_project": false
}
]
그룹에 멤버 역할 추가하기
- 사용자 정의 역할을 생성할 때 이름과 설명을 추가할 수 있는 기능은 GitLab 16.3에 도입되었습니다.
그룹에 멤버 역할을 추가합니다.
POST /groups/:id/member_roles
그룹에 멤버 역할을 추가하려면 그룹은 루트 수준이어야합니다(부모 그룹이 없어야 함).
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
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 | 프로젝트 Merge Request을 관리할 권한. |
admin_terraform_state
| 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 | 프로젝트 Merge Request을 관리할 권한. |
admin_terraform_state
| 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" : "사용자 정의 게스트", "base_access_level" : 10, "read_code" : true}' "https://gitlab.example.com/api/v4/groups/84/member_roles"
예시 응답:
{
"id": 3,
"name": "사용자 정의 게스트",
"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
}
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"