회원 역할 API
Tier: Ultimate
Offering: GitLab.com
- GitLab 15.4에 도입. 기본으로 비활성화된 상태로 customizable_roles 플래그 뒤에 배포됨.
- GitLab 15.9에 기본으로 활성화됨.
- GitLab 16.0에 Read 취약성 추가.
- GitLab 16.1에 Admin 취약성 추가.
- GitLab 16.3에 읽기 의존성 추가.
- GitLab 16.3에 이름 및 설명 필드 추가.
- GitLab 16.4에서 관리자용 Merge Request 도입, 기본으로 비활성화된 상태로 admin_merge_request”라는 플래그와 함께.
- GitLab 16.5에서 피처 플래그 “admin_merge_request” 제거.
- GitLab 16.5에서 Admin 그룹 구성원 도입, 기본으로 비활성화된 상태로 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에서 Admin 테라폼 상태 도입.
그룹의 모든 회원 역할 나열
인증된 사용자가 볼 수 있는 그룹 회원 역할의 디렉터리을 가져옵니다.
GET /groups/:id/member_roles
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | 예 | 인증된 사용자가 소유한 그룹의 ID 또는 URL 인코딩된 경로 |
성공하면 200
을 반환하며 다음과 같은 응답 속성을 반환합니다:
속성 | 유형 | 설명 |
---|---|---|
[].id
| integer | 회원 역할의 ID입니다. |
[].name
| string | 회원 역할의 이름입니다. |
[].description
| string | 회원 역할의 설명입니다. |
[].group_id
| integer | 회원 역할이 속한 그룹의 ID입니다. |
[].base_access_level
| integer | 회원 역할의 기본 액세스 레벨입니다. 유효한 값은 10 (게스트), 20 (기고자), 30 (개발자), 40 (유지 관리자) 또는 50 (소유자)입니다. |
[].admin_merge_request
| boolean | 프로젝트 Merge Request을 관리하고 download_code 기능을 활성화하는 권한입니다.
|
[].admin_terraform_state
| boolean | 프로젝트 테라폼 상태를 관리하는 권한입니다. |
[].admin_vulnerability
| boolean | 프로젝트 취약성을 관리하는 권한입니다. |
[].read_code
| boolean | 프로젝트 코드를 읽는 권한입니다. |
[].read_dependency
| boolean | 프로젝트 의존성을 읽는 권한입니다. |
[].read_vulnerability
| boolean | 프로젝트 취약성을 읽는 권한입니다. |
[].admin_group_member
| boolean | 그룹 구성원을 관리하는 권한입니다. |
[].manage_project_access_tokens
| boolean | 프로젝트 접근 토큰을 관리하는 권한입니다. |
[].archive_project
| boolean | 프로젝트를 보관하는 권한입니다. |
[].remove_project
| boolean | 프로젝트를 삭제하는 권한입니다. |
예시 요청:
curl --header "Authorization: Bearer <your_access_token>" "https://gitlab.example.com/api/v4/groups/84/member_roles"
예시 응답:
[
{
"id": 2,
"name": "커스텀 + 코드",
"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": "게스트 + 보안",
"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 | 예 | 인증된 사용자가 소유한 그룹의 ID 또는 URL 인코딩된 경로 |
name
| string | 예 | 회원 역할의 이름입니다. |
description
| string | 아니오 | 회원 역할의 설명입니다. |
base_access_level
| integer | 예 | 구성된 역할의 기본 액세스 레벨입니다. 유효한 값은 10 (게스트), 20 (기고자), 30 (개발자), 40 (유지 관리자), 50 (소유자)입니다. |
admin_merge_request
| boolean | 아니오 | 프로젝트 Merge Request을 관리하는 권한입니다. |
admin_terraform_state
| boolean | 아니오 | 프로젝트 테라폼 상태를 관리하는 권한입니다. |
admin_vulnerability
| boolean | 아니오 | 프로젝트 취약성을 관리하는 권한입니다. |
read_code
| boolean | 아니오 | 프로젝트 코드를 읽는 권한입니다. |
read_dependency
| boolean | 아니오 | 프로젝트 의존성을 읽는 권한입니다. |
read_vulnerability
| boolean | 아니오 | 프로젝트 취약성을 읽는 권한입니다. |
성공하면 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" : "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
}
GitLab 16.3 이상에서 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>" "https://gitlab.example.com/api/v4/groups/84/member_roles/1"