- 승인 규칙 추가
- 승인 규칙 편집
- 승인 규칙 삭제
- 여러 승인 규칙
- 승인 가능한 승인자
- 리포터 역할을 가진 사용자의 승인 권한 활성화
- Merge Request 승인 규칙 편집 또는 재정의
- 규칙에 대해 여러 승인이 필요한 경우
- 선택적 승인 규칙 구성
- 보호된 브랜치에 대한 승인
- 보안 승인
- 문제 해결
Merge Request 승인 규칙
승인 규칙은 Merge Request이 Merge되기 전에 받아야 하는 승인의 수 및 어떤 사용자가 승인해야 하는지를 정의합니다. 이는 코드 소유자와 함께 사용할 수 있으며, 변경 사항이 기능을 유지하는 그룹과 감독 영역을 책임지는 그룹에 의해 모두 검토되도록 보장합니다.
승인 규칙을 다음과 같이 정의할 수 있습니다:
승인 규칙을 다음과 같이 구성할 수 있습니다:
기본 승인 규칙을 정의하지 않으면 어떤 사용자든 Merge Request을 승인할 수 있습니다. 규칙을 정의하지 않더라도 프로젝트의 설정에서 필요한 승인자 수를 여전히 강제할 수 있습니다.
복제본에서 상향 프로젝트로의 Merge Request과 같은 대상이 다른 프로젝트를 대상으로 하는 경우, 대상(상향) 프로젝트의 기본 승인 규칙을 사용하며 소스(복제본) 프로젝트의 기본 승인 규칙을 사용하지 않습니다.
승인 규칙 추가
- GitLab 15.3에서 도입된 모든 보호된 브랜치에 대한 승인 규칙.
전제 조건:
- 해당 프로젝트에 적어도 유지자 역할이 있어야 합니다.
- GitLab.com에서 그룹을 승인자로 추가하려면 해당 그룹의 구성원이거나 그룹이 공개되어 있어야 합니다.
Merge Request 승인 규칙을 추가하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > Merge Request을 선택합니다.
- Merge Request 승인 섹션에서 승인 규칙 섹션에서 승인 규칙 추가를 선택합니다.
- 다음을 완료합니다:
- 승인 규칙 추가를 선택합니다. 여러 승인 규칙을 추가할 수 있습니다.
승인 규칙의 구성을 재정의하는 경우 새 규칙이 기존의 Merge Request에 적용되는지 여부를 결정합니다:
- 승인 규칙 재정의가 허용된 경우, 기본 규칙의 변경은 기존의 Merge Request에 적용되지 않습니다. 단, 규칙의 대상 브랜치에 대한 변경은 적용됩니다.
- 승인 규칙 재정의가 허용되지 않은 경우, 기본 규칙의 모든 변경이 기존의 Merge Request에 적용됩니다. 승인 규칙이 이전에 매뉴얼으로 재정의된 경우, 허용된 기간 동안 변경되지 않습니다.
승인 규칙 편집
전제 조건:
- 해당 프로젝트에 적어도 유지자 역할이 있어야 합니다.
- GitLab.com에서 그룹을 승인자로 추가하려면 해당 그룹의 구성원이거나 그룹이 공개되어 있어야 합니다.
Merge Request 승인 규칙을 편집하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > Merge Request을 선택합니다.
- Merge Request 승인 섹션에서 승인 규칙 섹션에서 편집하려는 규칙 옆의 편집을 선택합니다.
- 다음을 편집합니다:
-
필요한 승인,
0
값은 규칙을 선택 사항으로 만들며0
보다 큰 숫자는 필수 규칙을 만듭니다. 필요한 승인 최대 수는100
입니다. - 사용자 또는 그룹을 삭제하려면 삭제할 사용자 또는 그룹을 식별하고 삭제를 선택합니다 ().
-
필요한 승인,
- 승인 규칙 업데이트를 선택합니다.
승인 규칙 삭제
전제 조건:
- 해당 프로젝트에 적어도 유지자 역할이 있어야 합니다.
Merge Request 승인 규칙을 삭제하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > Merge Request을 선택합니다.
- Merge Request 승인 섹션에서 삭제하려는 규칙 옆의 휴지통 아이콘 ()을 선택합니다.
- 승인자 삭제를 선택합니다.
여러 승인 규칙
Merge Request에 여러 승인 규칙을 강제로 적용하려면 프로젝트에 여러 기본 승인 규칙을 추가합니다.
승인 가능한 승인자가 Merge Request을 승인하면 승인자가 속한 모든 규칙에 대한 남은 승인 수(승인 열)가 감소합니다:
개요는 다중 승인자를 참조하세요.
승인 가능한 승인자
프로젝트의 승인자로서 승인 가능하려면 사용자는 다음 중 하나 이상의 멤버여야 합니다:
개발자 역할을 하는 사용자는 다음 중 하나가 참인 경우 Merge Request을 승인할 수 있습니다:
- 프로젝트나 Merge Request 수준에서 추가된 사용자.
- Merge Request에 변경된 파일의 코드 소유자.
보고자 역할을 하는 사용자는 다음 모두가 참일 경우에만 승인할 수 있습니다:
- 프로젝트와 공유된 그룹의 일부여야 합니다. 해당 그룹은 최소한 보고자 역할이어야 합니다.
- Merge Request 승인자로 추가된 그룹.
자세한 지침은 Merge Request 승인 권한 분리를 참조하세요.
Merge Request 검토에 참여한 사용자를 표시하려면, Merge Request에서 댓글 단 사용자 열을 표시하는 승인 위젯을 표시합니다. 이를 통해 저자와 리뷰어가 Merge Request 내용에 관한 질문을 할 대상을 식별할 수 있습니다.
필요한 승인자의 수가 지정된 승인자 수보다 많을 경우 프로젝트에서 적어도 개발자 역할을 하는 사용자의 승인도 필요합니다.
그룹 승인자
그룹 사용자를 승인자로 추가할 수 있습니다. 이 그룹의 직속 구성원은 규칙을 승인할 수 있습니다. 상속 구성원은 규칙을 승인할 수 없습니다.
일반적으로 그룹은 최상위 네임스페이스에서 하위 그룹입니다. 외부 그룹과 협업하지 않는 경우를 제외하고요. 다른 그룹과 협업하는 경우, 해당 그룹을 그룹 승인자로 지정하기 전에 프로젝트에 대한 액세스를 공유해야 합니다.
사용자의 승인자 그룹 멤버십은 다음과 같이 개별 승인 능력에 영향을 미칩니다:
- 상속 구성원은 승인자로 간주되지 않습니다. 직속 구성원만이 Merge Request을 승인할 수 있습니다.
- 나중에 개별 승인자로 추가된 그룹 승인자 그룹의 사용자는 두 명이 아닌 한 명의 승인자로 취급됩니다.
- Merge Request 저자는 기본적으로 자신의 Merge Request에 대한 승인자로 간주되지 않습니다. 이 동작을 변경하려면 저자 승인 방지 프로젝트 설정을 비활성화하세요.
- Merge Request에 커미터가 승인할 수 있습니다. 이 동작을 변경하려면 커미터 승인 방지 프로젝트 설정을 활성화하세요.
코드 소유자로서의 승인 가능 승인자
만약 코드 소유자를 리포지터리에 추가한다면, 해당 파일 소유자는 프로젝트에서 승인 가능한 승인자가 됩니다. 이 Merge Request 승인 규칙을 활성화하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > Merge Request을 선택합니다.
- Merge Request 승인 섹션에서 승인 규칙 섹션으로 이동하고 모든 가능한 사용자 규칙을 찾습니다.
- 필요한 승인 열에 필요한 승인 횟수를 입력하세요.
또한 보호된 브랜치에서 코드 소유자 승인을 요구할 수도 있습니다.
리포터 역할을 가진 사용자의 승인 권한 활성화
리포터 역할을 가진 사용자가 보호된 브랜치에 Merge하려면 Merge Request을 승인할 수 있는 권한을 부여해야 할 수 있습니다. 일부 사용자(매니저 등)는 코드를 푸시하거나 Merge할 권한이 필요하지 않을 수도 있지만, 제안된 작업을 감독해야 할 수 있습니다.
전제 조건:
-
All Branches
또는All protected branches
설정과는 달리 특정 브랜치를 선택해야 합니다. - 추가된 사용자가 그룹에 속한 사용자일 때도 추가된 사용자가 해당 그룹의 일부이더라도, 사용자를 개별적인 승인 규칙이 아닌 승인 규칙에 추가해야 합니다.
이러한 사용자의 승인 권한을 활성화하려면 다음을 수행하세요:
- 보호된 브랜치를 생성합니다.
- 새 그룹을 생성합니다.
- 사용자를 그룹에 추가하고 사용자에 대해 리포터 역할을 선택합니다.
- 그룹과 프로젝트를 공유하고 최소한 리포터 역할로 선택합니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > Merge Request을 선택합니다.
-
Merge Request 승인 섹션에서 승인 규칙 섹션:
- 새 규칙의 경우, 승인 규칙 추가를 선택하고 보호된 브랜치를 대상으로 지정합니다.
- 기존 규칙의 경우, 편집을 선택하고 보호된 브랜치를 대상으로 지정합니다.
- 승인자 추가에서 생성한 그룹을 선택합니다.
- 승인 규칙 추가 또는 승인 규칙 업데이트를 선택합니다.
Merge Request 승인 규칙 편집 또는 재정의
프로젝트의 Merge Request 승인 규칙을 다음 중 하나로 재정의할 수 있습니다:
- 기존 Merge Request을 편집합니다.
- 새로운 Merge Request을 생성합니다.
전제 조건:
- 관리자 액세스 권한이 있거나 다음 중 모두를 충족해야 합니다:
- 적어도 개발자 역할을 갖고 있거나 프로젝트가 외부 구성원으로부터 기여를 받아야 합니다.
- Merge Request의 저자여야 합니다.
- 프로젝트 설정 Merge Request에서 승인 규칙 편집 방지이 비활성화되어 있어야 합니다.
Merge Request의 승인자를 재정의하려면:
- 새로운 Merge Request을 생성할 때 승인 규칙 섹션으로 스크롤하고 원하는 승인 규칙을 추가하거나 제거한 후 Merge Request 생성을 선택합니다.
- 기존 Merge Request을 보고 있을 때:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > Merge Request을 선택하고 Merge Request을 찾습니다.
- 편집을 선택합니다.
- 승인 규칙 섹션으로 스크롤합니다.
- 원하는 승인 규칙을 추가하거나 제거합니다.
- 변경 사항 저장을 선택합니다.
관리자는 Merge Request 승인 설정을 변경하여 사용자가 Merge Request의 승인 규칙을 재정의하는 것을 방지할 수 있습니다.
규칙에 대해 여러 승인이 필요한 경우
두 개 이상의 승인이 필요한 승인 규칙을 생성하려면:
규칙에 대해 여러 승인이 필요한 경우, approvals_required
속성을 2
이상으로 설정하도록 API를 사용할 수도 있습니다.
선택적 승인 규칙 구성
Merge Request 승인은 승인이 필요하지만 필수는 아닌 프로젝트에서 선택적일 수 있습니다. 승인 규칙을 선택적으로 만들려면:
-
규칙을 생성하거나 편집할 때 필요한 승인을
0
으로 설정하세요.
선택적 승인 규칙을 만들려면, approvals_required
속성을 0
으로 설정하도록 API를 사용할 수도 있습니다.
보호된 브랜치에 대한 승인
- All protected branches 대상 브랜치 옵션은 GitLab 15.3에서 소개되었습니다.
승인 규칙은 종종 기본 브랜치와 같은 특정 브랜치에만 관련이 있습니다. 특정 브랜치에 대한 승인 규칙을 구성하려면 다음을 수행하세요:
- 승인 규칙을 추가합니다.
- 프로젝트로 이동하여 설정 > Merge Request을 선택하세요.
- Merge Request 승인 섹션으로 이동하여 승인 규칙으로 스크롤합니다.
-
대상 브랜치에 대해:
- 모든 보호된 브랜치에 규칙을 적용하려면 모든 보호된 브랜치를 선택하세요.
- 특정 브랜치에 규칙을 적용하려면 해당 브랜치를 디렉터리에서 선택하세요.
- 이 구성을 활성화하려면 보호된 브랜치에 코드 소유자 승인을 요청을 따르세요.
보안 승인
- 보안 승인은 GitLab 15.0에서 소개된 Merge Request 승인 설정으로 이동되었습니다.
- 승인을 위한 봇 코멘트는 기본적으로 활성화된
security_policy_approval_notification
이라는 플래그와 함께 GitLab 16.2에서 소개되었습니다.- 승인을 위한 봇 코멘트는 GitLab 16.3에서 일반적으로 이용 가능해졌습니다.
security_policy_approval_notification
피처 플래그가 제거되었습니다.
보안 승인을 정의하기 위해 Merge Request 승인 정책을 사용하여 Merge Request 및 기본 브랜치의 취약점 상태에 따라 보안 승인을 정의할 수 있습니다. 각 보안 정책의 세부 정보는 Merge Request 구성의 보안 승인 섹션에 표시됩니다.
보안 승인 규칙은 파이프라인이 완료될 때까지 모든 Merge Request에 적용됩니다. 보안 승인 규칙의 적용은 사용자가 보안 스캔이 완료되기 전에 코드를 Merge하는 것을 방지합니다. 파이프라인이 완료된 후, 보안 승인 규칙은 여전히 필요한지를 확인하기 위해 검사됩니다. 파이프라인에서 스캐너가 문제를 식별하고 보안 승인이 필요한 경우, Merge Request에 해당 단계가 필요한지를 나타내는 봇 코멘트가 생성됩니다.
이러한 정책은 보안 정책 편집기에서 생성 및 편집됩니다.
문제 해결
승인 규칙 이름을 비워둘 수 없습니다.
이 유효성 검사 오류를 해결하기 위한 해결책으로 API를 통해 승인 규칙을 삭제할 수 있습니다.
이 유효성 검사 오류에 대한 자세한 정보는 issue 285129를 참조하십시오.
그룹은 명시적 또는 상속된 프로젝트 수준의 Developer 역할이 필요합니다.
승인을 처리하는 데 사용된 그룹이 검토를 필요로 하는 프로젝트의 다른 영역에서 생성될 수 있습니다. 이런 경우에는 해당 그룹의 구성원들이 해당 프로젝트에 액세스할 수 없기 때문에 Merge Request을 승인할 수 없을 수 있습니다.
예를 들어:
다음과 같은 그룹 구조에서, 프로젝트 1은 하위 그룹 1에 속하고, 하위 그룹 4에는 사용자가 있습니다.
프로젝트 1에는 프로젝트 수준 승인 규칙이 있으며, 이 규칙은 하위 그룹 4를 승인자로 지정합니다.
Merge Request이 생성되면 하위 그룹 4의 승인자가 자격이 있는 승인자 디렉터리에 표시됩니다.
그러나 하위 그룹 4의 사용자들이 Merge Request을 보기 위한 권한이 없기 때문에 404
오류가 반환됩니다.
그룹 멤버십을 부여하기 위해 해당 그룹을 프로젝트 멤버로 초대해야 합니다. 이제 하위 그룹 4의 사용자가 승인할 수 있게 되었습니다.