IT기술/Infra

[Infra][CI/CD] GitLab 프로젝트 구성 방안

IT곰곰 2022. 5. 23. 12:51
반응형

안녕하세요. 
오늘은 운영하는 GitLab을 조금 더 조직적이고 안전하며 가시성 있는 형태로 운영하기 위한, 간략한 구성 방안을 공유하기 위해 작성하고자 합니다. 

용어

  • <Company> 프로젝트: <Company>에서 관리하는 단위. 서비스 하나에 프로젝트가 하나 매핑될 수도 있고, 여러 개의 프로젝트가 하나의 서비스에 매핑될 수도 있다.
  • 깃랩 그룹: 깃랩에서 관리하는 논리적인 그룹. 그룹 하위에 프로젝트를 생성할 수 있으며, 사용자가 그룹 권한을 가지면, 그룹에 생성된 프로젝트에 그 권한이 상속된다.
  • 깃랩 프로젝트: 깃랩에서 사용하는 레파지토리의 단위. 프로젝트 단위로 코드를 관리할 수 있다.

GitLab의 권한 체계

  기능 Owner Maintainer Developer Reporter Guest
GitLab Group SubGroup 생성 O        
  GitLab Project 생성 O O      
  GitLab Group Member 관리 O        
  GitLab Group 조회 O O O O O
  GitLab Group 수정/삭제 O        
GItLab Project Code 다운로드 O O O O  
  이슈 생성 O O O O ?
  Merge Request 생성 O O O    
  신규 Branch 생성/접근 O O O    
  Protected Branch 관리/변경 O O      
  Member 추가 O O      

GitLab Group과 Project 생성 규칙

GitLab Group GitLab Project Description 운영 방안 Owner Maintainer Developer Reporter
프로젝트 명   Company에서 관리하는 프로젝트의 구분에 따라 브랜드 하위에 subgroup 생성. 하위의 프로젝트 관리 권한 양도가 필요할 경우 개발/운영사의 매니저에게 Maintainer 권한 부여 프로젝트 단위로 Company에서 Subgroup을 생성하고, Subgroup 내의 프로젝트 생성을 위해 개발/운영사에게 Maintainer 권한을 부여한다 Company Company& 개발/운영사 매니저    
  어플리케이션   개발/운영사 혹은 Company TechPM이 프로젝트를 생성하고, 필요한 엔지니어에게 적합한 권한을 부여한다(Maintainer/Developer/Reporter) Company (Company & 개발/운영사 매니저) & 개발/운영사 PL 혹은 개발 리더 개발/운영사 개발자 테스트 수행 인력

GitLab Group과 GitLab Project 명명규칙

  • 그룹과 프로젝트의 이름은 공백이 없는 영문소문자, 숫자, - 값만 사용한다.
  • 한글 설명이나, 너무 긴 명칭은 영어 혹은 약어로 변경한 후, 프로젝트의 Description에 기술한다.
  • 단어의 구분이 필요할 경우, 사이에 - 를 넣는다.
  • 깃랩 그룹 이름은 <프로젝트명>-service의 규칙을 사용한다
  • 깃랩 프로젝트 이름은 <프로젝트명>-<서비스명>의 규칙을 따르나, prefix를 추가해도 된다.
  • <프로젝트명>과 <서비스명>은 가능하면 Company에서 정의한 공식 명칭을 사용한다.

그룹 생성 방법

  1. 상단 메뉴에서 'Groups > Your Groups' 메뉴를 클릭합니다.
  2. 오른쪽 상단의 'New Group' 버튼을 클릭합니다.
  3. Group Name과 Description을 입력합니다.
  4. 'Visibility Level'을 'Private'으로 선택합니다.
  5. 'Create group' 버튼을 클릭합니다.

프로젝트 생성 방법

  1. 상단 메뉴에서 'Groups > Your Groups' 메뉴를 클릭합니다.
  2. 프로젝트를 생성할 그룹의 이름을 클릭하여, 그룹 Overview 화면으로 이동합니다.
  3. 'New project' 버튼을 클릭합니다.
  4. Project name과 description을 입력합니다.
  5. 'Visibility Level'을 'Private'으로 선택합니다.
  6. 'Create project' 버튼을 클릭합니다.
반응형