멤버와 권한 관리

GitLab의 그룹과 프로젝트에 사용자를 초대하고 권한을 부여할 수 있습니다. 사용자는 특정 그룹이나 프로젝트에서 가지고 있는 액세스 수준에 따라 다른 능력을 갖습니다. GitLab에서는 Guest, Reporter, Developer, Maintainer, Owner로 역할을 구분하여 접근 권한을 부여합니다.

역할 권한#

Owner#

기본적으로 그룹이나 프로젝트를 생성한 사람이 가지며, 그룹에서는 추가적으로 구성원에게도 부여할 수 있습니다. 그룹 또는 프로젝트에서 모든 권한을 가집니다. 일반적으로 팀장이나 PM 등 프로젝트 및 제품을 관리하는 사람에게 부여합니다.

Maintainer#

그룹 또는 프로젝트 수정/삭제, 그룹 회원 관리 등 일부 기능을 제외하고 Owner의 대부분 권한을 가집니다. Master에 Push 하고 Production으로 배포할 수 있습니다. 주로 업무를 배정하고 Merge Request를 승인하는 PL이나 시니어 엔지니어에게 부여합니다. 코드 리뷰를 하며 제품 및 코드베이스(codebase)을 알고 있어야 합니다.

Developer#

개발 또는 유지보수를 담당하는 개발자에게 부여합니다. 기본적으로 Master 브랜치, 추가적으로 설정한 Develop 브랜치와 같은 Protected 브랜치에는 Push 할 수 없습니다. 할당된 업무를 진행하기 위해 Feature 브랜치를 생성하고, 신규 기능 개발 또는 기존 기능 수정이 완료되면 소스를 Feature 브랜치에 Push 후 워크플로우에 따라 Merge Request를 작성하여 승인을 요청합니다.

Reporter#

리포지토리(Repository)에 쓸 수는 없지만, 이슈를 할당하거나 이슈 가중치를 설정하는 등의 이슈 관리와 Merge Request를 만들 수 있습니다.

Guest#

프로젝트에 적극적인 기여자는 아니지만, 이슈를 만들거나 코멘트(댓글)를 남김으로써 협업에 기여할 수 있습니다.

프로젝트 구성원 권한#

아래 표는 프로젝트의 다양한 사용자 권한 수준을 보여줍니다.

ActionGuestReporterDeveloperMaintainerOwner
프로젝트 다운로드✓(1)
코멘트(댓글) 남기기
허용 및 거부된 라이선스(licenses) 보기 (ULTIMATE)✓ (1)
라이선스 준수 보고서 보기 (ULTIMATE)✓ (1)
보안 보고서 보기 (ULTIMATE)✓ (3)
의존성 목록 보기 (ULTIMATE)✓ (1)
라이선스 목록 보기 (ULTIMATE)✓ (1)
의존성 목록에서 라이선스 보기 (ULTIMATE)✓ (1)
Design Management 페이지 보기
프로젝트 코드 보기✓ (1)
프로젝트 코드 가져오기(Pull)✓ (1)
액세스 제어로 보호되는 GitLab Pages 보기
위키(wiki) 페이지 보기
작업(Job) 목록 보기✓ (3)
작업(Job) 로그 보기✓ (3)
작업 아티팩트(artifacts) 다운로드 및 찾아보기✓ (3)
새로운 이슈 만들기
관련 이슈 보기
기밀(confidential) 이슈 만들기
기밀 이슈 보기(2)
릴리스 보기✓ (6)
요구사항(requirements) 보기 (ULTIMATE)
사용자 별표 매트릭스(metrics) 대시보드 관리 (7)
이슈 할당
이슈 레이블(label) 붙이기
이슈 가중치 설정
이슈 스레드(threads) 잠그기
이슈 트래커 관리
관련 이슈 관리
레이블(labels) 관리
코드 스니펫(snippets) 만들기
커밋(commit) 상태 보기
컨테이너 레지스트리(container registry) 보기
환경(environments) 보기
병합 요청(merge requests) 목록 보기
프로젝트 통계 보기
오류 추적 목록 보기
새 병합 요청 만들기
매트릭스 대시보드 어노테이션(annotations) 보기
요구사항 생성/편집 (ULTIMATE)
패키지 가져오기(Pull)
패키지 게시(Publish)
패키지 삭제
정리 정책(Cleanup policy) 생성/편집/삭제
Design Management 파일 업로드
릴리스 생성/편집/삭제
새 브랜치 만들기
Protected가 아닌 브랜치로 내보내기(Push)
Protected가 아닌 브랜치로 강제 내보내기(Force push)
Protected가 아닌 브랜치 제거
병합 요청 할당
병합 요청 레이블 붙이기
병합 요청 스레드 잠그기
병합 요청 승인 (9)
병합 요청 관리/수락
새로운 환경(environments) 만들기
환경 중지(Stop)
리뷰 앱(Apps) 활성화
태그 추가
작업(jobs) 취소 및 재시도
커밋 상태 생성 또는 업데이트✓ (5)
컨테이너 레지스트리 업데이트
컨테이너 레지스트리 이미지 제거
프로젝트 마일스톤 생성/편집/삭제
보안 대시보드 사용 (ULTIMATE)
의존성 목록에서 취약점(vulnerability) 발견사항 보기 (ULTIMATE)
취약점 발견에서 이슈 생성 (ULTIMATE)
취약점 발견 무시(Dismiss) (ULTIMATE)
취약점 보기 (ULTIMATE)
취약점 발견에서 취약점 생성 (ULTIMATE)
취약성 해결 (ULTIMATE)
취약성 무시 (ULTIMATE)
취약점을 탐지된 상태로 되돌리기(Revert) (ULTIMATE)
코드 변경 제안(suggestions) 적용
Wiki 페이지 생성 및 편집
Git 태그 다시쓰기/제거
기능(Feature) 플래그 관리 (PREMIUM)
매트릭스 대시보드 어노테이션 생성/편집/삭제
Protected 브랜치에 대해 CI/CD 파이프라인 실행✓ (5)
CVE ID 요청 (FREE ONLY)
환경 터미널 사용
Web IDE의 대화형 Web 터미널 실행 (ULTIMATE ONLY)
새 팀원 추가
브랜치 보호(protection) 활성화/비활성화
Protected 브랜치로 내보내기(Push)
개발자를 위한 Protected 브랜치로 내보내기(Push) 켜기/끄기
태그 보호 활성화/비활성화
프로젝트 설정 편집
프로젝트 배지(badges) 편집
그룹과 프로젝트 공유(초대)✓ (8)✓ (8)
프로젝트에 배포 키 추가
프로젝트 후크(hooks) 구성
러너(runners) 관리
작업 트리거(job triggers) 관리
CI/CD 변수 관리
GitLab Pages 관리
GitLab Pages 도메인 및 인증서 관리
GitLab Pages 제거
클러스터(clusters) 관리
프로젝트 운영 관리
파드(Pods) 로그 보기
Terraform 상태(state) 읽기
Terraform 상태 관리
라이선스 정책 관리 (ULTIMATE)
댓글(모든 사용자가 게시한) 수정
오류 추적 관리
위키 페이지 삭제
프로젝트 감사(Audit) 이벤트 보기
Push 규칙 관리
프로젝트 액세스 토큰 관리 (CORE ONLY)
가시성(visibility) 수준 전환
프로젝트를 다른 네임스페이스로 이동
프로젝트 이름 변경
포크(fork) 관계 제거
프로젝트 삭제
프로젝트 보관(Archive)
프로젝트 내보내기(Export)
이슈 삭제
파이프라인 삭제
병합 요청 삭제
알림 이메일 비활성화
Protected 브랜치로 강제 내보내기(Force push) (4)
Protected 브랜치 제거 (4)
CI\CD 분석 보기
코드 리뷰 분석 보기 (STARTER)
인사이트 보기 (ULTIMATE)
이슈 분석 보기 (PREMIUM)
병합 요청 분석 보기 (STARTER)
리포지토리(Repository) 분석 보기
가치 흐름(Value Stream) 분석 보기
  1. Guest 사용자는 공개 및 내부 프로젝트에서 이 작업(action)을 수행할 수 있지만 비공개 프로젝트에서는 수행할 수 없습니다.
  2. Guest 사용자는 자신이 만든 기밀 이슈만 볼 수 있습니다.
  3. 프로젝트 설정 > CI/CD에서 퍼블릭 파이프라인이 활성화된 경우.
  4. Guest, Reporter, Developer, Maintainer에게도, Owner에게도 허용되지 않습니다.
  5. Protected 브랜치이면, 이는 Developer 또는 Maintainer에게 부여된 액세스 권한에 따라 다릅니다.
  6. Guest 사용자는 자산(assets) 다운로드를 위해 GitLab 릴리스에 액세스 할 수 있지만 소스 코드를 다운로드하거나 태그 및 커밋과 같은 저장소 정보를 볼 수 없습니다.
  7. 작업은 사용자가 소유(참조)한 레코드로만 제한됩니다.
  8. 공유 그룹 잠금이 활성화된 경우, 프로젝트는 다른 그룹과 공유할 수 없습니다. 그룹 공유가 있는 그룹에는 영향을 주지 않습니다.
  9. 병합 요청에 대한 적격 승인자에 대한 정보는 적격 승인자를 참조하십시오.

그룹 구성원 권한#

아래 표는 그룹의 다양한 사용자 권한 수준을 보여줍니다.

ActionGuestReporterDeveloperMaintainerOwner
그룹 찾아보기(Browse)
인사이트(Insights) 차트 보기 (ULTIMATE)
그룹 에픽(epic) 보기 (ULTIMATE)
그룹 에픽 생성/편집 (ULTIMATE)
그룹 레이블(labels) 관리
컨테이너 레지스트리 보기
패키지 가져오기(Pull)
패키지 게시(Publish)
매트릭스 대시보드 어노테이션(annotations) 보기
그룹에서 프로젝트 만들기✓ (3) (5)✓ (3)✓ (3)
그룹과 그룹 공유(초대)
그룹 마일스톤 생성/편집/삭제
이터레이션(iterations) 생성/편집/삭제
의존성 프록시 활성화/비활성화 (PREMIUM)
보안 대시보드 사용 (ULTIMATE)
매트릭스 대시보드 어노테이션 생성/편집/삭제
그룹 수준 Kubernetes 클러스터 보기/관리
하위 그룹 만들기✓ (1)
에픽 댓글(모든 사용자가 게시한) 편집 (ULTIMATE)✓ (2)✓ (2)
그룹 설정 편집
그룹 수준 CI/CD 변수 관리
그룹 배포 토큰 나열
그룹 배포 토큰 생성/삭제
그룹 회원 관리
그룹 삭제
그룹 에픽 삭제 (ULTIMATE)
SAML SSO 결제 편집 (SILVER ONLY)✓ (4)
그룹 감사(Audit) 이벤트 보기
알림 이메일 비활성화
기여(Contribution) 분석 보기
인사이트 보기 (ULTIMATE)
이슈 분석 보기 (PREMIUM)
생산성 분석 보기 (PREMIUM)
가치 흐름(Value Stream) 분석 보기
결제 보기 (FREE ONLY)✓ (4)
사용 한도(Quotas) 보기 (FREE ONLY)✓ (4)
  1. Owner 또는 Owner 및 Maintainer가 하위 그룹을 만들 수 있도록 그룹을 설정할 수 있습니다.
  2. GitLab 12.2에서 도입되었습니다.
  3. 기본 프로젝트 생성 역할은 다음에서 변경할 수 있습니다.
    • 인스턴스 수준.
    • 그룹 수준.
  4. 하위 그룹에는 적용되지 않습니다.
  5. Developer는 기본 브랜치 보호(default branch protection)가 "부분적으로 보호됨" 또는 "보호되지 않음"으로 설정된 경우에만 새 프로젝트의 기본 브랜치로 커밋을 푸시할 수 있습니다.

멤버 추가#

그룹 또는 프로젝트의 Members 메뉴에서 추가할 사용자를 선택하거나 다른 그룹을 선택하여 구성원을 추가할 수 있습니다.

프로젝트 멤버 추가#

프로젝트에서는 생성한 사용자만 Owner 권한을 가지며 구성원에게는 그 외의 권한을 부여할 수 있습니다.

프로젝트 멤버 추가 | 인포그랩 GitLab

그룹 멤버 추가#

그룹에서는 구성원에게 모든 역할 권한을 선택하여 부여할 수 있습니다.

그룹 멤버 추가 | 인포그랩 GitLab

깃랩 문서 바로가기