멤버 역할 API

Tier: Ultimate Offering: GitLab.com, Self-managed

인스턴스 멤버 역할 관리

Tier: Ultimate Offering: Self-managed, GitLab Dedicated

필수 사항:

  • 관리자로 인증합니다.

인스턴스 전체의 멤버 역할을 가져오고, 생성하고 삭제할 수 있습니다.

모든 인스턴스 멤버 역할 가져오기

인스턴스의 모든 멤버 역할 가져오기.

GET /member_roles

예시 요청:

curl --header "Authorization: Bearer <your_access_token>" "https://gitlab.example.com/api/v4/member_roles"

예시 응답:

[
  {
    "id": 2,
    "name": "인스턴스 사용자 정의 역할",
    "description": "코드 읽기가 가능한 사용자 정의 게스트",
    "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 string yes 멤버 역할의 이름
description string no 멤버 역할의 설명
base_access_level integer yes 구성된 역할의 기본 액세스 레벨. 10(게스트), 20(리포터), 30(개발자), 40(관리자), 또는 50(소유자) 중 하나의 값
admin_cicd_variables boolean no CI/CD 변수를 생성, 읽기, 업데이트 및 삭제할 권한
… (중략) …      

더 많은 권한에 대한 정보는 사용자 정의 권한을 참조하십시오.

예시 요청:

 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/member_roles"

예시 응답:

{
  "id": 3,
  "name": "사용자 정의 게스트 (인스턴스)",
  "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>" "https://gitlab.example.com/api/v4/member_roles/1"

그룹 멤버 역할 관리

상세 정보: Tier: Ultimate Offering: GitLab.com

전제 조건:

  • 그룹에 대한 소유자 역할이 있어야 합니다.

이 API를 사용하여 그룹별 멤버 역할을 관리합니다. 그룹의 루트 수준에서만 멤버 역할을 생성할 수 있습니다.

모든 그룹 멤버 역할 가져오기

GET /groups/:id/member_roles

지원되는 속성:

속성 타입 필수 설명
id 정수/문자열 그룹의 ID 또는 URL-인코딩된 경로입니다.

예시 요청:

curl --header "Authorization: Bearer <your_access_token>" "https://gitlab.example.com/api/v4/groups/84/member_roles"

예시 응답:

[
  {
    "id": 2,
    "name": "Guest + read code",
    "description": "코드를 읽을 수 있는 사용자 지정 게스트",
    "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": "읽고 보안 엔터티를 관리할 수 있는 사용자 지정 게스트",
    "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
  }
]

그룹에 멤버 역할 추가

  • GitLab 16.3에서 도입된 사용자 지정 역할 생성 시 이름 및 설명을 추가할 수 있음.

그룹에 멤버 역할을 추가합니다.

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 부울 아니오 프로젝트 테라폼 상태를 관리할 수 있는 권한입니다.
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}' "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
}

GitLab 16.3 이후, API를 사용하여 다음 작업을 수행할 수 있습니다:

  • 새로운 사용자 지정 역할을 생성할 때 이름(필수) 및 설명(선택) 추가.
  • 기존 사용자 지정 역할의 이름과 설명을 업데이트.

그룹 멤버 권한 제거

그룹의 멤버 권한을 삭제합니다.

DELETE /groups/:id/member_roles/:member_role_id
속성 유형 필수 설명
id integer/string 그룹의 ID 또는 URL로 인코딩된 그룹의 경로입니다.
member_role_id integer 멤버 권한의 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"