Merge Request를 통한 협업
MR에는 브랜치를 만들고 Merge 또는 구현을 요청, CI/CD를 통한 Test의 결과를 확인하고 코드 리뷰 후 팀으로부터 피드백을 받고 최종적으로 관리자로부터 Merge Request에 대한 승인과 Merge에 대한 파이프라인의 성공과 변경사항 적용까지 팀원들이 진행사항을 파악하여 협업하도록 모든 기록을 보고 audit할 수 있습니다.
MR의 사용 예시
개발자:
- 새 브랜치를 체크 아웃하고 MR을 통해 변경 사항 제출
- 피드백(코드 리뷰) 받기
- 웹 프로젝트라면, Review Apps로 변경 사항을 미리 볼 수 있습니다.
- 코드 품질 보고서(Code Quality Reports)로 코드를 최적화하는 구현 작업을 수행
- GitLab CI / CD의 단위 테스트 보고서로 변경 사항을 확인합니다.
- 라이선스 준수 보고서를 통해 라이선스가 프로젝트와 호환되지 않는 종속성을 사용하지 않습니다.
- 관리자에게 승인 을 요청합니다.
운영 :
- 최종 검토와 함께 커밋을 푸시
- MR을 승인
- 파이프라인이 성공하면 Merge 실행
- 변경 사항은 GitLab CI / CD 작업을 통해 프로덕션에 배포
MR 만들기
1. MR 브랜치 준비하기
로컬에서 새 브랜치를 체크 아웃하여 푸쉬하거나 웹 UI에서 브랜치를 새로 생성하면, Project overview, Repository > Files, Merge Requests 메뉴에서 위 그림의 네모 칸과 같은 알림이 나타납니다. MR을 생성하기 위해서 'Create merge request' 버튼을 클릭합니다. 만약, 이전에 만든 브랜치로 MR을 생성하려면 위 그림 하단의 'New merge request' 버튼을 클릭하여 진행합니다.
(이슈를 통해 MR을 생성하는 방법은 디자이너와 개발자가 협업하는 방법 참고)
2. MR 작성
옵 션 | 설 명 |
---|---|
** Title ** | MR의 제목을 입력합니다. |
** Description ** | MR을 통한 변경사항의 목적과 검토자가 확인해야 할 항목을 기술합니다. |
** Assignee ** | 해당 MR의 담당자 선택 |
** Milestone ** | MR의 마일스톤 선택 |
** Labels ** | MR의 레이블 선택 |
** Merge request dependencies(PREMIUM ) ** | #merge-request-dependencies |
** Approval rules ** | MR에 대한 승인권자를 설정합니다. |
** Merge options ** | 'Delete source branch when merge request is accepted'에 체크하면 현재 MR의 브랜치를 제거하면서 Merge를 실행합니다. 'Squash commits when merge request is accpeted'에 체크하면 MR에 쌓여있는 커밋 리스트를 하나의 커밋으로 묶어서 Merge를 실행합니다. |
MR 사용하기
1. 리뷰
변경사항 좌측에 마우스를 올리면 말풍선 버튼이 나타납니다. 클릭하여 리뷰를 쓴 후 'Start a review' 버튼을 클릭하여 리뷰를 진행합니다.
(더 자세한 내용은 코멘트와 쓰레드로 토론하기를 참고)
2. 승인
위 그림 에서 MR의 Merge 버튼을 활성화 시키기 위해서는 2명의 승인이 필요합니다. 코드 리뷰와 승인을 받는 과정은 팀원들이 파이프라인의 진행 상황을 명확하게 파악할 수 있고 협업하도록 도와주는 중요한 역할을 합니다.
(Merge Requset Approvals 설정에 대한 자세한 내용은 Merge Request Approvals를 참고)
3. 실행
Merge를 하기 위해 필요한 수의 승인을 받고 나면 Merge 버튼이 활성화되고 버튼을 클릭하여 Merge를 실행할 수 있습니다. Merge를 실행하기 전 두 가지 옵션을 체크할 수 있습니다. 'Delete source branch'에 체크하면 현재 MR의 브랜치를 제거하면서 Merge를 실행합니다. 'Squash commits'에 체크하면 MR에 쌓여있는 커밋 리스트를 하나의 커밋으로 묶어서 Merge를 실행합니다.
(Merge 권한을 설정하려면 Protected Branch를 참고)
MR에 테스트 추가하기
MR의 변경 사항에 대한 테스트 결과를 통해 코드 리뷰를 진행하면 검토자와 QA 팀의 시간을 절약할 수 있습니다.