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에서 정의한 공식 명칭을 사용한다.
그룹 생성 방법
- 상단 메뉴에서 'Groups > Your Groups' 메뉴를 클릭합니다.
- 오른쪽 상단의 'New Group' 버튼을 클릭합니다.
- Group Name과 Description을 입력합니다.
- 'Visibility Level'을 'Private'으로 선택합니다.
- 'Create group' 버튼을 클릭합니다.
프로젝트 생성 방법
- 상단 메뉴에서 'Groups > Your Groups' 메뉴를 클릭합니다.
- 프로젝트를 생성할 그룹의 이름을 클릭하여, 그룹 Overview 화면으로 이동합니다.
- 'New project' 버튼을 클릭합니다.
- Project name과 description을 입력합니다.
- 'Visibility Level'을 'Private'으로 선택합니다.
- 'Create project' 버튼을 클릭합니다.
반응형