병합 요청 승인 설정

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

병합 요청 승인에 대한 설정을 구성하여 merge request approvals가 사용 사례에 맞는 승인 규칙이 되도록 할 수 있습니다. 승인해야 할 사용자 수와 유형을 정의하는 승인 규칙을 구성할 수도 있습니다. 병합 요청 승인 설정은 병합 요청이 완료로 향할 때 이러한 규칙을 적용하는 방법을 정의합니다.

다음 설정 조합을 사용하여 병합 요청에 대한 승인 제한을 구성할 수 있습니다:

병합 요청 승인 설정 편집

단일 프로젝트의 병합 요청 승인 설정을 보거나 편집하려면:

  1. 왼쪽 사이드바에서 검색하거나 이동을 선택하고 프로젝트를 찾습니다.

  2. 설정 > 병합 요청을 선택합니다.

  3. 승인을 확장합니다.

인스턴스 또는 최상위 그룹에서 설정 계승

승인 규칙 설정 관리의 단순화를 위해 가능한 가장 넓은 수준에서 승인 규칙을 구성합니다. 생성된 규칙은:

그룹이나 프로젝트가 설정을 상속받는 경우, 상속 그룹이나 프로젝트에서 이를 변경할 수 없습니다. 설정이 시작된 곳인 최상위 그룹이나 인스턴스에서 변경해야 합니다.

작성자에 의한 승인 방지

기본적으로 병합 요청의 작성자가 그것을 승인할 수 없습니다. 이 설정을 변경하려면:

  1. 왼쪽 사이드바에서 검색하거나 이동을 선택하고 프로젝트를 찾습니다.

  2. 설정 > 병합 요청을 선택합니다.

  3. 병합 요청 승인 섹션에서 승인 설정으로 스크롤하여 작성자에 의한 승인 방지 체크박스를 지웁니다.

  4. 변경 사항 저장을 선택합니다.

작성자는 개별 병합 요청에서 승인 규칙을 편집하고 이 설정을 무시할 수 있습니다. 단, 아래 옵션 중 하나를 구성하지 않는 경우에 해당합니다:

  • 기본 승인 무시 방지
    프로젝트 수준에서.
  • (자체 관리 인스턴스만 해당) 기본 승인 무시 방지
    인스턴스 수준에서. 인스턴스 수준에서 구성된 경우, 프로젝트 또는 개별 병합 요청 수준에서 이 설정을 편집할 수 없습니다.

커밋을 추가한 사용자의 승인을 방지

기본적으로, 병합 요청에 커밋한 사용자는 여전히 이를 승인할 수 있습니다. 프로젝트 수준 또는 인스턴스 수준에서, 커밋한 사용자가 자신의 일부인 병합 요청을 승인하지 못하도록 할 수 있습니다. 이를 위해 다음을 수행합니다:

  1. 왼쪽 사이드바에서 검색하거나 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > 병합 요청을 선택합니다.
  3. 병합 요청 승인 섹션에서 승인을 위해 커밋을 추가한 사용자를 방지를 선택합니다. 이 체크박스가 선택 해제된 경우, 관리자가 인스턴스 수준에서 이를 비활성화한 것이며, 프로젝트 수준에서 변경할 수 없습니다.
  4. 변경 사항 저장을 선택합니다.

병합 요청에 커밋한 코드 소유자는 승인할 수 없으며,

만약 해당 병합 요청이 그들이 소유한 파일에 영향을 미친다면.

자세한 내용은 공식 Git 문서를 참조하세요.

병합 요청에서 승인 규칙 편집 방지

기본적으로 사용자는 프로젝트에 대해 생성한 승인 규칙을 병합 요청별로 재정의할 수 있습니다. 사용자가 병합 요청의 승인 규칙을 변경하지 못하도록 하려면 이 설정을 비활성화할 수 있습니다:

  1. 왼쪽 사이드바에서 검색하거나 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > 병합 요청을 선택합니다.
  3. 병합 요청 승인 섹션에서 병합 요청에서 승인 규칙 편집 방지를 선택합니다.
  4. 변경 사항 저장을 선택합니다.

이 변경 사항은 모든 열린 병합 요청에 영향을 미칩니다.

이 필드를 변경하면 설정에 따라 모든 열린 병합 요청에 영향을 미칠 수 있습니다:

  • 사용자가 이전에 승인 규칙을 편집할 수 있었고, 이 동작을 비활성화하면, GitLab은 모든 열린 병합 요청을 업데이트하여 승인 규칙을 강제 적용합니다.
  • 사용자가 이전에 승인 규칙을 편집할 수 없었고, 승인 규칙 편집을 활성화하면, 열린 병합 요청은 변경되지 않습니다. 이는 해당 병합 요청에서 이미 변경된 승인의 규칙을 보존합니다.

승인을 위해 사용자 재인증 요구

  • GitLab.com 그룹을 위한 SAML 인증을 사용하여 재인증 요구 도입됨 GitLab 16.6에서 플래그 ff_require_saml_auth_to_approve와 함께. 기본적으로 비활성화됨.
  • 자체 관리 인스턴스에 대한 SAML 인증을 사용하여 재인증 요구 도입됨 GitLab 16.7에서 플래그 ff_require_saml_auth_to_approve와 함께. 기본적으로 비활성화됨.
  • GitLab.com 및 자체 관리 인스턴스에 대해 기본적으로 활성화된 ff_require_saml_auth_to_approve GitLab 16.8.

자체 관리 GitLab에서는 기본적으로 SAML 인증을 사용하여 재인증 요구가 가능합니다. 기능을 숨기려면 관리자가 기능 플래그 ff_require_saml_auth_to_approve를 비활성화할 수 있습니다. GitLab.com 및 GitLab 전용에서 이 기능을 사용할 수 있습니다.

잠재적인 승인자에게 먼저 SAML 또는 비밀번호로 인증하도록 강제할 수 있습니다.
이 권한은 연방 규정 코드(CFR) 파트 11에서 정의된 승인에 대한 전자 서명을 활성화합니다.

사전 요구 사항:

  • 이 설정은 최상위 그룹에서만 사용할 수 있습니다.
  1. 왼쪽 사이드바에서 검색하거나 이동을 선택하고 프로젝트를 찾습니다.
  2. 비밀번호 인증 및 SAML 인증을 활성화합니다. 다음에 대한 자세한 내용은:
  3. 왼쪽 사이드바에서 설정 > 병합 요청을 선택합니다.
  4. 병합 요청 승인 섹션에서 승인을 위해 사용자 재인증(비밀번호 또는 SAML) 요구를 선택합니다.
  5. 변경 사항 저장을 선택합니다.

소스 브랜치에 커밋이 추가될 때 모든 승인 제거

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

기본적으로, 병합 요청에 대한 승인은 승인 이후에 더 많은 변경 사항을 추가하면 제거됩니다. GitLab Premium 및 Ultimate 계층에서는 병합 요청에 더 많은 변경 사항이 추가된 후 기존 승인을 유지하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동를 선택하고 프로젝트를 찾습니다.
  2. 설정 > 병합 요청을 선택합니다.
  3. 병합 요청 승인 섹션에서 승인 설정까지 스크롤하여 모든 승인 제거 확인란을 선택 해제합니다.
  4. 변경 사항 저장을 선택합니다.

GitLab은 git patch-id를 사용하여 병합 요청에서의 차이를 식별합니다. 이 값은 합리적으로 안정적이고 고유한 식별자이며, 병합 요청 내에서 승인을 재설정하는 스마트한 결정을 가능하게 합니다. 새로운 변경 사항을 병합 요청에 푸시할 때, patch-id는 이전 patch-id와 비교되어 승인을 재설정해야 하는지 여부를 결정합니다. 이는 git rebase 또는 git merge <target>과 같은 명령어를 기능 브랜치에서 실행할 때 GitLab이 더 나은 재설정 결정을 내릴 수 있도록 합니다.

변경된 파일이 있는 경우 코드 소유자의 승인 제거

새 커밋에서 변경된 파일이 있는 코드 소유자의 승인만 제거하려면:

전제 조건:

  • 프로젝트에 대해 최소한 유지 관리자인 역할이 필요합니다.

이를 수행하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > 병합 요청을 선택합니다.
  3. 병합 요청 승인 섹션에서 변경된 파일이 있는 코드 소유자의 승인 제거를 선택합니다.
  4. 변경 사항 저장을 선택합니다.

관련 주제