머지 리퀘스트 승인 규칙
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
승인 규칙은 머지 리퀘스트가 병합될 수 있기 전에 받아야 하는 승인 수와 승인을 수행해야 하는 사용자를 정의합니다. 기본 승인 규칙을 정의하지 않으면 누구나 머지 리퀘스트를 승인할 수 있습니다. 포크에서 업스트림 프로젝트로의 머지 리퀘스트처럼 다른 프로젝트를 대상으로 하는 머지 리퀘스트는 소스(포크)가 아닌 대상(업스트림) 프로젝트의 기본 승인 규칙을 사용합니다.
승인 규칙은 머지 리퀘스트가 병합될 수 있기 전에 받아야 하는 승인 수와 승인을 수행해야 하는 사용자를 정의합니다. 이 규칙은 코드 소유자와 함께 사용하여 기능을 유지 관리하는 그룹과 특정 감독 영역을 담당하는 그룹 모두에 의해 변경 사항이 검토되도록 할 수 있습니다.
승인 규칙을 정의할 수 있습니다:
승인 규칙을 구성할 수 있습니다:
기본 승인 규칙을 정의하지 않으면 누구나 머지 리퀘스트를 승인할 수 있습니다. 규칙을 정의하지 않아도 프로젝트 설정에서 최소 필수 승인자 수를 강제할 수 있습니다.
포크에서 업스트림 프로젝트로의 머지 리퀘스트처럼 다른 프로젝트를 대상으로 하는 머지 리퀘스트는 소스(포크)가 아닌 대상(업스트림) 프로젝트의 기본 승인 규칙을 사용합니다.
머지 리퀘스트 승인은 정책을 통해 모든(또는 일부) 프로젝트에 전역적으로 구성할 수 있습니다. 머지 리퀘스트 승인 정책은 더 세분화된 구성 옵션으로 추가적인 유연성을 제공합니다.
승인 규칙 추가#
전제 조건:
- 프로젝트에 대한 Maintainer 또는 Owner 역할이 있어야 합니다.
- GitLab.com에서 그룹을 승인자로 추가하려면 해당 그룹의 구성원이거나 그룹이 공개 그룹이어야 합니다.
머지 리퀘스트 승인 규칙을 추가하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > Merge requests를 선택합니다.
- Merge request approvals 섹션의 Approval rules 섹션에서 Add approval rule을 선택합니다.
- 오른쪽 사이드바에서 필드를 작성합니다:
- Approvals required에서
0값은 규칙을 선택 사항으로 만들고,0보다 큰 숫자는 필수 규칙을 생성합니다. 최대 필수 승인 수는100입니다. - Add approvers에서 승인 자격이 있는 사용자 또는 그룹을 선택합니다. GitLab은 머지 리퀘스트에서 변경된 파일의 이전 작성자를 기반으로 승인자를 제안합니다.
- Approvals required에서
- Save changes를 선택합니다. 여러 승인 규칙을 추가할 수 있습니다.
승인 규칙 재정의에 대한 구성에 따라 새 규칙이 기존 머지 리퀘스트에 적용되는지 여부가 결정됩니다:
- 승인 규칙 재정의가 허용된 경우, 이러한 기본 규칙에 대한 변경 사항은 기존 머지 리퀘스트에 적용되지 않습니다. 단, 규칙의 대상 브랜치 변경은 예외입니다.
- 승인 규칙 재정의가 허용되지 않는 경우, 기본 규칙에 대한 모든 변경 사항이 기존 머지 리퀘스트에 적용됩니다. 승인 규칙 재정의가 허용된 기간 동안 이전에 수동으로 재정의된 승인 규칙은 수정되지 않습니다.
승인 규칙 편집#
전제 조건:
- 프로젝트에 대한 Maintainer 또는 Owner 역할이 있어야 합니다.
- GitLab.com에서 그룹을 승인자로 추가하려면 해당 그룹의 구성원이거나 그룹이 공개 그룹이어야 합니다.
머지 리퀘스트 승인 규칙을 편집하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > Merge requests를 선택합니다.
- Merge request approvals 섹션의 Approval rules 섹션에서 편집할 규칙 옆의 Edit을 선택합니다.
- 오른쪽 사이드바에서 필드를 편집합니다:
- Approvals required에서
0값은 규칙을 선택 사항으로 만들고,0보다 큰 숫자는 필수 규칙을 생성합니다. 최대 필수 승인 수는100입니다. - 사용자 또는 그룹을 제거하려면 제거할 그룹 또는 사용자를 찾아 Remove ([remove])를 선택합니다.
- Approvals required에서
- Save changes를 선택합니다.
승인 규칙 삭제#
전제 조건:
- 프로젝트에 대한 Maintainer 또는 Owner 역할이 있어야 합니다.
머지 리퀘스트 승인 규칙을 삭제하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > Merge requests를 선택합니다.
- Merge request approvals 섹션에서 삭제할 규칙 옆의 휴지통 ([remove])을 선택합니다.
- Remove approvers를 선택합니다.
여러 승인 규칙#
머지 리퀘스트에 여러 승인 규칙을 적용하려면 프로젝트에 여러 기본 승인 규칙을 추가하세요.
승인 자격이 있는 승인자가 머지 리퀘스트를 승인하면 해당 승인자가 속한 모든 규칙의 남은 승인 수(Approvals 열)가 줄어듭니다:

개요는 여러 승인자 동영상을 참조하세요.
승인할 수 있는 모든 머지 리퀘스트에 대한 알림 받기#
승인 자격이 있는 머지 리퀘스트가 생성될 때마다 이메일 알림을 받으려면:
- 알림 수준 설정을 Custom으로 설정하고 Merge request you're eligible to approve is created 이벤트를 선택합니다.
머지 리퀘스트 승인 규칙 편집 또는 재정의#
다음 방법으로 프로젝트의 머지 리퀘스트 승인 규칙을 재정의할 수 있습니다:
- 기존 머지 리퀘스트 편집.
- 새 머지 리퀘스트 생성.
전제 조건:
- 프로젝트 설정 Prevent editing approval rules in merge requests가 비활성화되어 있어야 합니다.
- 다음 중 하나가 참이어야 합니다:
- 관리자 액세스 권한이 있어야 합니다.
- 머지 리퀘스트의 작성자이면서 프로젝트에서 Developer, Maintainer 또는 Owner 역할을 가지고 있어야 합니다.
- 프로젝트에 대한 Maintainer 또는 Owner 역할이 있어야 합니다.
머지 리퀘스트의 승인자를 재정의하려면:
- 새 머지 리퀘스트를 생성할 때 Approval Rules 섹션으로 스크롤하고 Create merge request를 선택하기 전에 원하는 승인 규칙을 추가하거나 제거합니다.
- 기존 머지 리퀘스트를 볼 때:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Code > Merge requests를 선택하고 머지 리퀘스트를 찾습니다.
- Edit을 선택합니다.
- Approval Rules 섹션으로 스크롤합니다.
- 원하는 승인 규칙을 추가하거나 제거합니다.
- Save changes를 선택합니다.
관리자는 머지 리퀘스트 승인 설정을 변경하여 사용자가 머지 리퀘스트에 대한 승인 규칙을 재정의하는 것을 방지할 수 있습니다.
규칙에 여러 승인 필요#
두 개 이상의 승인을 요구하는 승인 규칙을 생성하려면:
규칙에 여러 승인을 요구하려면 머지 리퀘스트 승인 API를
사용하여 approvals_required 속성을 2 이상으로 설정할 수도 있습니다.
선택적 승인 규칙 구성#
머지 리퀘스트 승인은 승인이 권장되지만 필수가 아닌 프로젝트에서 선택 사항으로 설정할 수 있습니다. 승인 규칙을 선택 사항으로 만들려면:
- 규칙을 생성하거나 편집할 때 Approvals required를
0으로 설정합니다.
승인 규칙을 선택 사항으로 만들려면 API를 사용하여
프로젝트의 승인 규칙을 업데이트하고
approvals_required 속성을 0으로 설정할 수도 있습니다.
보호된 브랜치에 대한 승인#
승인 규칙은 종종 기본 브랜치와 같은 특정 브랜치에만 관련이 있습니다. 특정 브랜치에 대한 승인 규칙을 구성하려면:
- 승인 규칙을 생성합니다.
- 프로젝트로 이동하여 왼쪽 사이드바에서 Settings > Merge requests를 선택합니다.
- Merge request approvals 섹션에서 Approval rules로 스크롤합니다.
- Target branch에서:
- 모든 보호된 브랜치에 규칙을 적용하려면 All protected branches를 선택합니다.
- 특정 브랜치에 규칙을 적용하려면 목록에서 해당 브랜치를 선택합니다.
- 이 구성을 활성화하려면 보호된 브랜치에 코드 소유자 승인 필요를 따르세요.
추가 사용자에게 승인 권한 활성화#
Planner 또는 Reporter 역할을 가진 사용자가 보호된 브랜치에 병합하기 전에 머지 리퀘스트를 승인할 권한을 부여해야 합니다. 일부 사용자(예: 관리자)는 코드를 푸시하거나 병합할 권한은 필요하지 않지만 제안된 작업에 대한 감독이 필요할 수 있습니다.
Planner 또는 Reporter 역할을 가진 사용자는 일반 승인 규칙을 통해서만 머지 리퀘스트를 승인할 수 있습니다. 코드 소유자 승인 규칙은 사용자가 Developer, Maintainer 또는 Owner 역할을 가져야 합니다. 자세한 내용은 승인 자격이 있는 승인자를 참조하세요.
전제 조건:
- 특정 브랜치를 선택해야 합니다. 이 방법은
All Branches또는All protected branches설정에서는 작동하지 않습니다. - 개별 사용자가 아닌 공유 그룹이 승인 규칙에 추가되어야 합니다. 추가된 사용자가 그룹의 일부인 경우에도 마찬가지입니다.
푸시 액세스 없이 이러한 사용자에게 승인 권한을 활성화하려면:
- 보호된 브랜치를 생성합니다
- Planner 또는 Reporter 역할로 승인 권한이 필요한 사용자를 위한 새 그룹을 생성합니다.
- 그룹에 사용자를 추가합니다. 사용자는 Planner, Reporter, Developer, Maintainer 또는 Owner 역할이 있어야 합니다.
- Reporter, Developer, Maintainer 또는 Owner 역할로 그룹과 프로젝트를 공유합니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > Merge requests를 선택합니다.
- Merge request approvals 섹션의 Approval rules 섹션에서:
- 새 규칙의 경우 Add approval rule을 선택하고 보호된 브랜치를 대상으로 합니다.
- 기존 규칙의 경우 Edit을 선택하고 보호된 브랜치를 대상으로 합니다.
- 오른쪽 사이드바의 Add approvers에서 생성한 그룹을 선택합니다.
- Save changes를 선택합니다.
보안 승인#
히스토리
머지 리퀘스트 승인 정책을 사용하여 머지 리퀘스트 및 기본 브랜치의 취약점 상태를 기반으로 보안 승인을 정의할 수 있습니다. 각 보안 정책에 대한 세부 정보는 머지 리퀘스트 구성의 Security Approvals 섹션에 표시됩니다.
보안 승인 규칙은 파이프라인이 완료될 때까지 모든 머지 리퀘스트에 적용됩니다. 보안 승인 규칙의 적용으로 보안 스캔이 실행되기 전에 사용자가 코드를 병합하는 것을 방지합니다. 파이프라인이 완료된 후 보안 승인 규칙이 확인되어 보안 승인이 여전히 필요한지 결정됩니다. 스캐너가 파이프라인에서 문제를 식별하고 보안 승인이 필요한 경우, 진행하기 위해 필요한 단계를 나타내는 봇 댓글이 머지 리퀘스트에 생성됩니다.

이러한 정책은 보안 정책 편집기에서 생성 및 편집됩니다.
승인 자격이 있는 승인자#
프로젝트의 승인자 자격을 갖추려면 사용자는 다음 중 하나 이상의 직접 구성원이어야 합니다:
- 프로젝트.
- 프로젝트의 그룹.
- 프로젝트 그룹의 상위 그룹.
- 프로젝트와 공유된 다른 그룹.
- 프로젝트의 그룹 또는 그룹의 부모와 공유된 다른 그룹.
- 그룹 승인자로 추가된 그룹.
다음 중 하나가 참인 경우 Developer 역할을 가진 사용자는 머지 리퀘스트를 승인할 수 있습니다:
- 프로젝트 또는 머지 리퀘스트 수준에서 승인자로 추가된 사용자.
- 머지 리퀘스트에서 변경된 파일의 코드 소유자인 사용자.
다음이 모두 참인 경우 Planner 또는 Reporter 역할을 가진 사용자만 승인할 수 있습니다:
- 사용자가 프로젝트와 공유된 그룹의 일부입니다. 그룹은 Reporter, Developer, Maintainer 또는 Owner 역할을 가져야 합니다.
- Planner 및 Reporter 역할을 가진 사용자에 대한 승인 권한이 활성화되어 있어야 합니다.
머지 리퀘스트 검토에 참여한 사람을 표시하기 위해 머지 리퀘스트의 승인 위젯에 Commented by 열이 표시됩니다. 이 열에는 머지 리퀘스트에 댓글을 남긴 승인 자격이 있는 승인자가 나열됩니다. 이를 통해 작성자와 검토자가 머지 리퀘스트 내용에 대해 질문할 사람을 파악할 수 있습니다.
필수 승인 수가 할당된 승인자 수보다 많은 경우, 프로젝트에서 Developer, Maintainer 또는 Owner 역할을 가진 다른 사용자의 승인이 사용자가 승인 규칙에 명시적으로 나열되지 않아도 필수 승인 수 충족에 포함됩니다.
코드 소유자를 승인자로#
저장소에 코드 소유자를 추가하면 파일 소유자가 프로젝트의 승인 자격이 있는 승인자가 됩니다. 이 머지 리퀘스트 승인 규칙을 활성화하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > Merge requests를 선택합니다.
- Merge request approvals 섹션의 Approval rules 섹션에서 All eligible users 규칙을 찾습니다.
- Approvals required 열에 필요한 승인 수를 입력합니다.
또한 보호된 브랜치에 대해 코드 소유자 승인을 필수로 설정할 수 있습니다.
멤버십 유형별 승인자#
다음 표는 멤버십 유형이 승인 규칙과 코드 소유자 모두에 대한 자격에 어떻게 영향을 미치는지 보여줍니다.
사용자 자격#
승인 규칙에 개별 사용자를 승인자로 할당하거나 CODEOWNERS 파일에서 @username으로 사용자를 참조하는 경우:
| 멤버십 유형 | 승인 규칙 | 코드 소유자 |
|---|---|---|
| 프로젝트의 직접 구성원 | ✅ | ✅ |
| 프로젝트 그룹의 직접 구성원 | ✅ | ✅ |
| 프로젝트 그룹의 상속된 구성원 | ✅ | ✅ |
| 프로젝트에 초대된 그룹의 직접 구성원 | ✅ | ✅ |
| 프로젝트에 초대된 그룹의 상속된 구성원 | ❌ | ❌ |
| 프로젝트 그룹에 초대된 그룹의 직접 구성원 | ✅ | ✅ |
| 프로젝트 그룹에 초대된 그룹의 상속된 구성원 | ❌ | ❌ |
| 프로젝트 그룹의 상위 그룹에 초대된 그룹의 직접 구성원 | ✅ | ✅ |
| 프로젝트 그룹의 상위 그룹에 초대된 그룹의 상속된 구성원 | ❌ | ❌ |
그룹 자격#
승인 규칙에 그룹을 승인자로 할당하거나 CODEOWNERS 파일에서 @group-name으로 그룹을 참조하는 경우,
적격 그룹의 직접 구성원만 승인을 제공할 수 있습니다:
| 그룹 유형 | 승인 규칙 | 코드 소유자 |
|---|---|---|
| 프로젝트에 초대된 그룹 | ✅ | ✅ |
| 프로젝트 그룹에 초대된 그룹 | ✅ | ❌ |
| 프로젝트 그룹의 상위에 초대된 그룹 | ✅ | ❌ |
| 프로젝트의 그룹 | ✅ | ✅ |
| 프로젝트 그룹의 상위 | ✅ | ✅ |
그룹 기반 승인의 경우 그룹의 직접 구성원만 머지 리퀘스트를 승인할 수 있습니다. 적격 그룹의 상속된 구성원은 승인을 제공할 수 없습니다.
그룹 승인자#
사용자 그룹을 승인자로 추가할 수 있습니다. 이 그룹의 모든 직접 구성원이 규칙을 승인할 수 있습니다. 상속된 구성원은 규칙을 승인할 수 없습니다.
일반적으로 그룹은 외부 그룹과 협업하는 경우가 아니면 최상위 네임스페이스의 하위 그룹입니다. 다른 그룹과 협업하고 해당 그룹의 구성원을 승인자로 사용하려면 다음 중 하나를 선택할 수 있습니다:
- 프로젝트에 대한 접근 공유.
- 프로젝트 그룹에 대한 접근 공유, 이를 통해 외부 그룹이 프로젝트 그룹의 모든 프로젝트에 대한 승인 접근 권한을 얻게 됩니다.
승인자 그룹의 사용자 멤버십은 다음과 같은 방식으로 개인 승인 권한을 결정합니다:
- 상속된 구성원은 승인자로 간주되지 않습니다. 직접 구성원만 머지 리퀘스트를 승인할 수 있습니다.
- 그룹 승인자 그룹 출신의 사용자가 나중에 개인 승인자로도 추가되면 해당 사용자는 두 명이 아닌 한 명의 승인자로 계산됩니다.
- 머지 리퀘스트 작성자는 기본적으로 자신의 머지 리퀘스트에서 승인 자격이 있는 승인자로 계산되지 않습니다. 이 동작을 변경하려면 Prevent merge request creator approval 프로젝트 설정을 비활성화하세요.
- 기본적으로 머지 리퀘스트 커미터는 머지 리퀘스트를 승인할 수 있습니다. 이 동작을 변경하려면 Prevent committers approval 프로젝트 설정을 활성화하세요.
문제 해결#
승인 규칙 이름은 비워둘 수 없음#
이 유효성 검사 오류의 해결 방법으로, API를 통해 승인 규칙을 삭제할 수 있습니다.
이 유효성 검사 오류에 대한 자세한 내용은 이슈 285129를 참조하세요.
그룹은 프로젝트에서 명시적 또는 상속된 Developer 역할이 필요함#
승인 처리를 위해 생성된 그룹은 검토가 필요한 프로젝트와 다른 프로젝트 계층 구조 영역에 생성될 수 있습니다. 이 경우 해당 그룹의 구성원이 머지 리퀘스트에 접근할 수 없으므로 승인 권한이 없을 수 있습니다.
예를 들어:
아래 그룹 구조에서 프로젝트 1은 subgroup 1에 속하고 subgroup 4에는 사용자가 있습니다.

프로젝트 1은 subgroup 4를 승인자로 할당하는 프로젝트 승인 규칙이 구성되어 있습니다.
머지 리퀘스트가 생성되면 subgroup 4의 승인자가 승인 자격이 있는 승인자 목록에 나타납니다.
그러나 subgroup 4의 사용자가 머지 리퀘스트를 볼 권한이 없으므로 404 오류가 반환됩니다.
멤버십을 부여하려면 그룹을 프로젝트 구성원으로 초대해야 합니다. 이제 subgroup 4의 사용자가 승인할 수 있습니다.

