- 병합 요청 승인 설정 편집
- 작성자에 의한 승인 방지
- 커밋을 추가하는 사용자에 의한 승인 방지
- 병합 요청에서 승인 규칙 편집 방지
- 사용자 재인증 필요 승인 요청
- 소스 브랜치에 커밋이 추가될 때 모든 승인 제거
- 코드 소유자의 파일이 변경될 때 모든 승인 제거
- 설정 계층화
- 관련 주제
병합 요청 승인 설정
병합 요청 승인 설정을 구성하여 승인 규칙이 사용 사례에 맞는지 확인할 수 있습니다. 또한 작업이 병합되기 전에 승인해야 하는 사용자의 수와 유형을 정의하는 승인 규칙을 구성할 수도 있습니다. 병합 요청 승인 설정은 이러한 규칙이 병합 요청이 완료되는 방식을 정의합니다.
병합 요청 승인 설정 편집
병합 요청 승인 설정을 보거나 편집하려면 다음 단계를 따르세요:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > 병합 요청을 선택합니다.
- 승인을 확장합니다.
승인 설정
이러한 설정은 병합 요청을 승인할 수 있는 사용자를 제한합니다:
- 작성자에 의한 승인 방지: 병합 요청의 작성자가 승인하는 것을 방지합니다.
- 커밋을 추가하는 사용자에 의한 승인 방지: 커밋을 추가하는 사용자가 승인하는 것을 방지합니다.
- 병합 요청에서 승인 규칙 편집 방지: 사용자가 프로젝트 수준 승인 규칙을 병합 요청에서 무시하는 것을 방지합니다.
- 사용자 재인증(암호 또는 SAML) 필요: 잠재적 승인자가 먼저 암호나 SAML로 인증하도록 강제합니다.
- 코드 소유자 승인 제거: 커밋이 병합 요청에 추가될 때 기존 승인에 대한 정의
- 승인 유지: 어떤 승인도 제거하지 않습니다.
- 모든 승인 제거: 모든 기존 승인을 제거합니다.
- 코드 소유자 승인을 파일 변경 시 제거: 코드 소유자가 병합 요청을 승인하고 나중에 커밋이 소유한 파일을 변경하면 해당 승인이 제거됩니다.
작성자에 의한 승인 방지
기본적으로 병합 요청의 작성자는 승인할 수 없습니다. 이 설정을 변경하려면 다음을 수행하세요:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > 병합 요청을 선택합니다.
- 병합 요청 승인 섹션에서 승인 설정으로 스크롤하고 작성자에 의한 승인 방지 확인란을 지웁니다.
- 변경 사항 저장을 선택합니다.
작성자는 이 설정을 재정의하고 개별 병합 요청에서 승인 규칙을 편집할 수 있으나, 다음 중 하나를 구성하지 않는 한:
- 프로젝트 수준에서 기본 승인 재설정 방지.
- (Self-Managed 인스턴스 전용) 프로젝트나 개별 병합 요청에서 이 설정을 편집할 수 없으며, 인스턴스 수준에서 기본 승인 재설정 방지가 구성됩니다.
커밋을 추가하는 사용자에 의한 승인 방지
기본적으로 커밋을 추가하는 사용자는 병합 요청을 승인할 수 있습니다. 프로젝트 수준이나 인스턴스 수준에서, 커밋을 추가한 사용자가 병합 요청을 부분적으로 승인하는 것을 막을 수 있습니다. 다음을 수행하세요:
- 왼쪽 사이드바에서 설정 > 병합 요청을 선택합니다.
- 병합 요청 승인 섹션에서 승인 설정으로 스크롤하고 커밋을 추가하는 사용자에 의한 승인 방지를 선택합니다. 이 확인란을 지운 경우, 관리자가 인스턴스 수준에서 이를 비활성화한 경우이며 프로젝트 수준에서 변경할 수 없습니다.
- 변경 사항 저장을 선택합니다.
GitLab 16.3에 추가된 특성 플래그 keep_merge_commits_for_approvals
는
기본적으로 커밋을 추가하는 사용자도 승인할 수 있습니다. 최신 버전의 GitLab에서는 코드 소유자가 파일에 영향을 주는 경우에도
병합 요청에 커밋을 추가하는 사용자가 승인할 수 없게 할 수 있습니다.
더 많은 정보는 공식 Git 문서를 참조하세요.
병합 요청에서 승인 규칙 편집 방지
기본적으로 사용자는 프로젝트별로 생성한 승인 규칙을 병합 요청별로 재정의할 수 있습니다. 사용자가 병합 요청에서 승인 규칙을 변경하지 않도록 하려면 다음 설정을 해제할 수 있습니다:
- 왼쪽 사이드바에서 설정 > 병합 요청을 선택합니다.
- 병합 요청 승인 섹션에서 승인 설정으로 스크롤하고 병합 요청에서 승인 규칙 편집 방지를 선택합니다.
- 변경 사항 저장을 선택합니다.
이 변경은 모든 열린 병합 요청에 영향을 미칩니다.
이 필드가 변경되면 설정에 따라 모든 열린 병합 요청에 영향을 줄 수 있습니다:
- 사용자가 이전에 승인 규칙을 편집할 수 있었고 이 동작을 비활성화하는 경우 모든 열린 병합 요청이 승인 규칙을 강제로 적용하도록 업데이트됩니다.
- 사용자가 이전에 승인 규칙을 편집할 수 없었고 승인 규칙 편집을 활성화하는 경우 열린 병합 요청은 변경되지 않습니다. 이는 이미 해당 병합 요청에서 수행된 승인 규칙의 변경을 보존합니다.
사용자 재인증 필요 승인 요청
- GitLab 16.6에서 도입된 GitLab.com 그룹을 위한 SAML 인증을 사용하여 재인증을 요구합니다. 기본값은 비활성화됩니다.
- GitLab 16.7에서 도입된 self-managed 인스턴스를 위한 SAML 인증을 사용하여 재인증을 요구합니다. 기본값은 비활성화됩니다.
- GitLab.com 및 self-managed 인스턴스에서 기본적으로
ff_require_saml_auth_to_approve
를 활성화합니다.
플래그:
self-managed GitLab에서 기본적으로 SAML 인증을 사용하여 재인증을 요구하는 설정이 가능합니다. 사용자 피처를 숨기려면 관리자는 ff_require_saml_auth_to_approve
라는 피처 플래그를 비활성화할 수 있습니다. GitLab.com 및 GitLab Dedicated에서 이 기능을 사용할 수 있습니다.
잠재적인 승인자가 다음 중 하나로 먼저 인증하도록 할 수 있습니다:
- 비밀번호.
- SAML.
이 권한은 Code of Federal Regulations (CFR) Part 11에서 정의한 전자 서명을 승인하는 것입니다. 이 설정은 최상위 그룹에서만 사용할 수 있습니다. 자세한 정보는 설정 캐스케이딩을 참조하세요.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 비밀번호 인증 및 SAML 인증을 가능하게 합니다. 자세한 내용은:
- 비밀번호 인증에 대한 정보는 로그인 제한 설명서를 참조하세요.
- GitLab.com 그룹의 SAML 인증에 대한 정보는 GitLab.com 그룹을 위한 SAML SSO 설명서를 참조하세요.
- self-managed 인스턴스의 SAML 인증에 대한 정보는 self-managed GitLab 인스턴스를 위한 SAML SSO를 참조하세요.
- 왼쪽 사이드바에서 설정 > 병합 요청을 선택합니다.
- 병합 요청 승인 섹션에서 승인 설정으로 스크롤하고 사용자 재인증(비밀번호 또는 SAML)이 필요합니다를 선택합니다.
- 변경 사항 저장을 선택합니다.
소스 브랜치에 커밋이 추가될 때 모든 승인 제거
세부 정보: Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
기본적으로 병합 요청에 대한 승인은 승인 후 변경 사항이 추가되면 제거됩니다. GitLab Premium 및 Ultimate 티어에서는 변경 사항이 병합 요청에 추가된 후에도 기존의 승인을 유지하려면 다음을 수행합니다:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > 병합 요청을 선택합니다.
- 병합 요청 승인 섹션에서 승인 설정으로 스크롤하고 모든 승인 제거 확인란을 선택 해제합니다.
- 변경 사항 저장을 선택합니다.
병합 요청이 UI에서 리베이스된 경우 승인은 제거되지 않습니다. 그러나 대상 브랜치가 변경되면 승인이 재설정됩니다.
코드 소유자의 파일이 변경될 때 모든 승인 제거
- GitLab 15.3에서 도입됨.
커밋이 추가될 때 파일이 변경된 코드 소유자의 승인만 제거하려면 다음을 수행하세요:
사전 요구 사항:
- 프로젝트에 대해 적어도 Maintainer 역할이 있어야 합니다.
수행 방법:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > 병합 요청을 선택합니다.
- 병합 요청 승인 섹션에서 승인 설정으로 스크롤하고 파일이 변경된 경우 코드 소유자의 승인 제거를 선택합니다.
- 변경 사항 저장을 선택합니다.
설정 계층화
또한 병합 요청 승인 설정을 강제로 적용할 수 있습니다:
설정이 그룹이나 프로젝트에 의해 상속되면, 상속 받은 설정은 해당 그룹이나 프로젝트에서 변경할 수 없습니다.