Merge Request Approvals

왜 사용해야 할까?

Merge Request(이하 MR)가 검증되고 승인 해주는 것은 변경 사항을 반영했다는 사실을 명확하게 전달하기 때문에 리뷰 프로세스의 중요한 부분입니다. 이 과정에서 리뷰 결과로 변경 사항을 반영할지 승인해주는 역할이 존재합니다. 이 역할을 GitLab에서는 Merge Request Approvals를 통해 부여할 수 있습니다.

코드 또는 브랜치마다 승인받아야 할 검토자들 또는 부서가 다르고 또한 승인권자 중 최소 몇 명에게 검토받아야만 merge가 승인될지 설정할 수도 있습니다.

  • 저장소에 merge되는 모든 코드에 대해 승인권자 리뷰를 필수로 거치도록 해야 할 때
  • MR Approvals를 통해 코드 변경에 대한 검토자 및 최소 검토자 수 지정
  • 모든 코드 변경에 대해 백엔드, 프론트엔드, QA, 데이터베이스 등과 같은 검토자 분류(그룹) 지정
  • MR에서 변경된 파일에 따라 코드 소유자를 적합한 승인자로 지정
  • 취약성을 발생시킬 수 있는 코드를 merge하기 전에 보안 팀의 승인을 요청 (UlTIMATE)

참고: Merge request(MR)를 통한 협업, 코멘트와 쓰레드로 토론하기

설정

settings> General > Merge Request Approvals

photo | 인포그랩 GitLab | 인포그랩 GitLab

'Add approval rule' 또는 'Edit' 버튼을 클릭합니다.

photo | 인포그랩 GitLab | 인포그랩 GitLab
옵 션설 명
** Rule Name **규칙 이름을 입력합니다.
** No. approvals required **MR이 승인 되기 위해 최소한으로 받아야할 승인 수를 입력합니다.
최소값은 0 입니다( 승인을 옵션으로 하기)
** Target branch **설정할 브랜치를 선택합니다.
** Approvers **MR에 대한 승인권자를 설정합니다. 사용자 또는 그룹이 될 수 있습니다.

누구에게 승인 자격이 주어질까요?

photo | 인포그랩 GitLab | 인포그랩 GitLab

다음 사용자는 MR을 승인 할 수 있습니다.

  • Merge Request Approvals가 설정 되지 않았다면 'Developer' 이상의 권한이 있는 사용자
  • Merge Request Approvals로 추가 된 사용자
  • MR에 의해 변경된 파일의 코드 소유자이자 'Developer' 이상의 권한이 있는 사용자

다음의 구성원인 경우 프로젝트의 Merge Request Approvals로 추가 할 수 있습니다.

  • 프로젝트의 멤버
  • 프로젝트의 직계 상위 그룹 멤버
  • 공유를 통해 프로젝트에 액세스 할 수 있는 그룹 멤버

또한, 그룹을 승인자로 추가 할 수 있습니다.

만약, 어떤 사용자가 Merge Request Approvals에 개인과 그룹으로 여러 번 추가 되어있는 경우, 승인 수는 한 번으로 계산됩니다.

설정에서 'Prevent approval of merge requests by merge request author'(디폴트로 체크 되어 있음) 또는 'Prevent approval of merge requests by merge request committers'가 체크 된 경우 MR 생성자 또는 MR을 커밋한 사용자는 승인권자가 될 수 없습니다.

승인권자가 MR에 코멘트를 달면 승인 위젯의 코멘트 작성자 열에 표시 되어 병합 요청 검토에 참여한 사람을 나타냅니다. 작성자와 검토자는 병합 요청 내용에 대한 질문이나 의견이 있는 경우 누구에게 연락해야 하는지 쉽게 식별 할 수 있습니다.

암시적 승인자

Merge에 필요한 승인 수가 할당 된 승인자 수보다 많도록 설정한다면,

해당 브랜치의 Merge Request Approvals에 설정하지 않은 개발자 이상의 권한을 가진 사용자도 승인이 요구 사항 충족에 포함될 수 있습니다.

예를 들어, 10명의 팀원이 있는 그룹이 있습니다.

반드시 승인받아야 하는 2명을 명시적으로 Merge Request Approvals에 설정하고, 'No. approvals required'에 5명을 설정합니다.

그럼 반드시 받아야 할 승인권자 2명과 자신을 제외한 나머지 7명 중 3명의 승인을 받으면 Merge가 승인됩니다.

MR 승인을 옵션으로 하기?

Merge Request Approvals 설정 중 'No. approvals required'에 0을 입력하여 MR 승인을 선택 사항으로 구성 할 수 있습니다.

이는 승인이 인정되지만 필수는 아닌 팀에서 작업하는 경우 유용 할 수 있습니다.

다수의 승인 규칙 설정

라이선스: PREMIUM 이상

photo | 인포그랩 GitLab | 인포그랩 GitLab

Premium 이상에서는 여러 개의 Merge Request Approvals 규칙을 설정할 수 있습니다.

위의 그림과 같이 백엔드, 프론트엔드, QA 등 여러 그룹의 최소 승인 수를 설정할 수 있습니다.

Merge가 승인 되기 위해서는 해당 승인수를 모두 충족시켜야 합니다.

만약 승인권자가 여러 규칙에 속해 있다면 속해 있는 모든 규칙에 대해 필요 승인 수가 감소합니다.

Protected Branch로 범위 지정

라이선스: PREMIUM 이상

photo | 인포그랩 GitLab | 인포그랩 GitLab

Protected Branch를 설정 했다면 Merge Request Approvals 규칙의 범위를 특정 브랜치로 설정 할 수 있습니다.

참고: Protected Branch란?

MR 작성 그룹과 승인 그룹 분리하기

(작성 중)