Merge Request Approvals

라이센스: STARTER 이상

왜 사용해야 할까?

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

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

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

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

설정

settings> General > Merge Request Approvals

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

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

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

다음 사용자는 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 이상

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

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

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

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

Protected Branch로 범위 지정

라이센스: PREMIUM 이상

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

참고: Protected Branch란?

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

(작성중)