회원 역할 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에 Read 종속성이 추가되었습니다.
- GitLab 16.3에서 이름 및 설명 필드가 추가되었습니다.
- GitLab 16.4에서 Admin merge request가 도입되었습니다 admin_merge_request라는 플래그와 함께 기본적으로 비활성화되어 있습니다.
- GitLab 16.5에서 Feature flag
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 terraform state가 도입되었습니다.
그룹의 모든 회원 역할 나열
인증된 사용자가 볼 수 있는 그룹 회원 역할 목록을 가져옵니다.
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
| 부울 | 프로젝트 테라폼 상태를 관리하는 권한 |
[].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": "게스트 + 보안",
"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
| 정수/문자열 | 예 | 인증된 사용자가 소유한 그룹의 ID 또는 URL 인코딩된 경로 |
name
| 문자열 | 예 | 멤버 역할의 이름 |
description
| 문자열 | 아니오 | 멤버 역할의 설명 |
base_access_level
| 정수 | 예 | 구성된 역할의 기본 액세스 수준. 유효한 값은 10(Guest), 20(Reporter), 30(Developer), 40(Maintainer) 또는 50(Owner)입니다. |
admin_merge_request
| 부울 | 아니오 | 프로젝트 병합 요청을 관리할 권한 |
admin_terraform_state
| 부울 | 아니오 | 프로젝트 테라폼 상태를 관리할 권한 |
admin_vulnerability
| 부울 | 아니오 | 프로젝트 취약점을 관리할 권한 |
read_code
| 부울 | 아니오 | 프로젝트 코드를 읽을 권한 |
read_dependency
| 부울 | 아니오 | 프로젝트 종속성을 읽을 권한 |
read_vulnerability
| 부울 | 아니오 | 프로젝트 취약점을 읽을 권한 |
성공 시 201
및 다음 속성을 반환합니다:
속성 | 유형 | 설명 |
---|---|---|
id
| 정수 | 멤버 역할의 ID |
name
| 문자열 | 멤버 역할의 이름 |
description
| 문자열 | 멤버 역할의 설명 |
group_id
| 정수 | 멤버 역할이 속한 그룹의 ID |
base_access_level
| 정수 | 멤버 역할의 기본 액세스 수준 |
admin_merge_request
| 부울 | 프로젝트 병합 요청을 관리할 권한 |
admin_terraform_state
| 부울 | 프로젝트 테라폼 상태를 관리할 권한 |
admin_vulnerability
| 부울 | 프로젝트 취약점을 관리할 권한 |
read_code
| 부울 | 프로젝트 코드를 읽을 권한 |
read_dependency
| 부울 | 프로젝트 종속성을 읽을 권한 |
read_vulnerability
| 부울 | 프로젝트 취약점을 읽을 권한 |
예시 요청:
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"