멤버 역할 API

Tier: Ultimate
Offering: GitLab.com

그룹의 모든 멤버 역할 나열

인증된 사용자가 볼 수 있는 그룹 멤버 역할 디렉터리을 가져옵니다.

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"