멤버 역할 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": "Instance custom role",  
    "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 멤버 역할의 이름입니다.
description string 아니오 멤버 역할의 설명입니다.
base_access_level integer 구성된 역할의 기본 접근 수준입니다. 유효한 값은 10 (게스트), 20 (리포터), 30 (개발자), 40 (유지보수자), 또는 50 (소유자)입니다.
admin_cicd_variables boolean 아니오 CI/CD 변수를 생성, 읽기, 업데이트 및 삭제할 수 있는 권한입니다.
admin_compliance_framework boolean 아니오 준수 프레임워크를 관리할 수 있는 권한입니다.
admin_group_member boolean 아니오 그룹 내에서 멤버를 추가, 제거 및 할당할 수 있는 권한입니다.
admin_merge_request boolean 아니오 병합 요청을 승인할 수 있는 권한입니다.
admin_push_rules boolean 아니오 그룹 또는 프로젝트 수준에서 리포지토리에 대한 푸시 규칙을 구성할 수 있는 권한입니다.
admin_terraform_state boolean 아니오 프로젝트 테라폼 상태를 관리할 수 있는 권한입니다.
admin_vulnerability boolean 아니오 취약성 객체를 편집할 수 있는 권한(상태 및 이슈 연결 포함)입니다.
admin_web_hook boolean 아니오 웹 훅을 관리할 수 있는 권한입니다.
archive_project boolean 아니오 프로젝트를 보관할 수 있는 권한입니다.
manage_deploy_tokens boolean 아니오 배포 토큰을 관리할 수 있는 권한입니다.
manage_group_access_tokens boolean 아니오 그룹 접근 토큰을 관리할 수 있는 권한입니다.
manage_merge_request_settings boolean 아니오 병합 요청 설정을 구성할 수 있는 권한입니다.
manage_project_access_tokens boolean 아니오 프로젝트 접근 토큰을 관리할 수 있는 권한입니다.
manage_security_policy_link boolean 아니오 보안 정책 프로젝트를 연결할 수 있는 권한입니다.
read_code boolean 아니오 프로젝트 코드를 읽을 수 있는 권한입니다.
read_runners boolean 아니오 프로젝트 러너를 볼 수 있는 권한입니다.
read_dependency boolean 아니오 프로젝트 종속성을 읽을 수 있는 권한입니다.
read_vulnerability boolean 아니오 프로젝트 취약성을 읽을 수 있는 권한입니다.
remove_group boolean 아니오 그룹을 삭제하거나 복원할 수 있는 권한입니다.
remove_project boolean 아니오 프로젝트를 삭제할 수 있는 권한입니다.

사용 가능한 권한에 대한 자세한 내용은 사용자 정의 권한을 참조하세요.

예시 요청:

 curl --request POST --header "Content-Type: application/json" --header "Authorization: Bearer <your_access_token>" --data '{"name" : "Custom guest (instance)", "base_access_level" : 10, "read_code" : true}' "https://gitlab.example.com/api/v4/member_roles"

예시 응답:

{
  "id": 3,
  "name": "Custom guest (instance)",
  "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": "Custom guest that can read code",
    "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": "Custom guest that read and admin security entities",
    "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 integer/string 그룹의 ID 또는 URL 인코딩된 경로입니다.
admin_cicd_variables boolean 아니요 CI/CD 변수를 생성, 읽기, 업데이트 및 삭제할 수 있는 권한입니다.
admin_compliance_framework boolean 아니요 준수 프레임워크를 관리할 수 있는 권한입니다.
admin_group_member boolean 아니요 그룹에서 구성원을 추가, 제거 및 할당할 수 있는 권한입니다.
admin_merge_request boolean 아니요 병합 요청을 승인할 수 있는 권한입니다.
admin_push_rules boolean 아니요 그룹 또는 프로젝트 수준에서 리포지토리의 푸시 규칙을 구성할 수 있는 권한입니다.
admin_terraform_state boolean 아니요 프로젝트 테라폼 상태를 관리할 수 있는 권한입니다.
admin_vulnerability boolean 아니요 프로젝트 취약성을 관리할 수 있는 권한입니다.
admin_web_hook boolean 아니요 웹 후크를 관리할 수 있는 권한입니다.
archive_project boolean 아니요 프로젝트를 보관할 수 있는 권한입니다.
manage_deploy_tokens boolean 아니요 배포 토큰을 관리할 수 있는 권한입니다.
manage_group_access_tokens boolean 아니요 그룹 접근 토큰을 관리할 수 있는 권한입니다.
manage_merge_request_settings boolean 아니요 병합 요청 설정을 구성할 수 있는 권한입니다.
manage_project_access_tokens boolean 아니요 프로젝트 접근 토큰을 관리할 수 있는 권한입니다.
manage_security_policy_link boolean 아니요 보안 정책 프로젝트를 연결할 수 있는 권한입니다.
read_code boolean 아니요 프로젝트 코드를 읽을 수 있는 권한입니다.
read_runners boolean 아니요 프로젝트 러너를 볼 수 있는 권한입니다.
read_dependency boolean 아니요 프로젝트 의존성을 읽을 수 있는 권한입니다.
read_vulnerability boolean 아니요 프로젝트 취약성을 읽을 수 있는 권한입니다.
remove_group boolean 아니요 그룹을 삭제하거나 복원할 수 있는 권한입니다.
remove_project 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_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 정수/문자열 그룹의 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"