Merge Request 승인 설정

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

Merge Request 승인은 승인 규칙이 사용 사례에 맞도록 보장하도록 설정할 수 있습니다. 또한 작업이 Merge되기 전에 승인해야 하는 사용자의 수 및 유형을 정의하는 승인 규칙을 구성할 수도 있습니다. Merge Request 승인 설정은 이러한 규칙을 Merge Request이 완료됨에 따라 적용하는 방법을 정의합니다.

이러한 설정 중 하나 이상의 조합을 사용하여 Merge Request에 대한 승인 제한을 구성할 수 있습니다:

Merge Request 승인 설정 편집

단일 프로젝트의 Merge Request 승인 설정을 보거나 편집하려면 다음을 수행합니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > Merge Request을 선택합니다.
  3. 승인을 확장합니다.

인스턴스 또는 최상위 그룹에서 설정 유역

승인 규칙 설정을 관리하기 쉽게 하려면 가능한 한 넓은 범위의 수준에서 승인 규칙을 구성합니다. 생성된 규칙:

  • 인스턴스 레벨에서 생성된 규칙은 해당 인스턴스의 모든 그룹 및 프로젝트에 적용됩니다.
  • 최상위 그룹에서 생성된 규칙은 해당 최상위 그룹의 모든 하위 그룹 및 프로젝트에 적용됩니다.

그룹이나 프로젝트에 설정이 상속되면, 상속받는 그룹이나 프로젝트에서 변경할 수 없습니다. 변경해야 하는 곳은 설정이 발생한 최상위 그룹이나 인스턴스입니다.

작성자에 의한 승인 방지

기본적으로 Merge Request의 작성자는 승인할 수 없습니다. 이 설정을 변경하려면 다음을 수행합니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > Merge Request을 선택합니다.
  3. Merge Request 승인 섹션에서 승인 설정으로 스크롤하여 작성자에 의한 승인 방지 확인란을 선택 취소합니다.
  4. 변경 사항 저장을 선택합니다.

작성자는 개별 Merge Request에서 승인 규칙을 편집하고 이 설정을 무시할 수 있습니다. 다음 중 하나를 구성하지 않는 한:

  • 기본 승인 재정의 방지 (프로젝트 수준)
  • (Self-Managed형되는 인스턴스 전용) 기본 승인 재정의 방지 인스턴스 수준 (인스턴스 수준에서 구성한 경우 프로젝트나 개별 Merge Request 수준에서 이 설정을 편집할 수 없음)

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

기본적으로 Merge Request에 커밋을 하는 사용자는 여전히 승인할 수 있습니다. 프로젝트 레벨 또는 인스턴스 레벨에서, 커밋을 추가한 사용자가 일부분인 Merge Request을 승인하지 못하도록 할 수 있습니다. 아래를 따릅니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > Merge Request을 선택합니다.
  3. Merge Request 승인 섹션에서 승인 설정으로 스크롤하여 커밋을 추가한 사용자에 의한 승인 방지를 선택합니다. 이 확인란이 선택 취소된 경우, 관리자가 해당 기능을 인스턴스 수준에서 비활성화했으므로 프로젝트 수준에서 변경할 수 없습니다.
  4. 변경 사항 저장을 선택합니다.

코드 주인이 Merge Request에 커밋하는 경우 해당 Merge Request을 승인할 수 없습니다.

추가 정보는 공식 Git 문서를 참조하세요.

Merge Request에서 승인 규칙 편집 방지

기본적으로 프로젝트에서 생성하거나하는 승인 규칙을 Merge Request별로 재정의할 수 있습니다. Merge Request에서 승인 규칙을 변경하지 않으려면 해당 설정을 비활성화할 수 있습니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > Merge Request을 선택합니다.
  3. Merge Request 승인 섹션에서 승인 설정으로 스크롤하여 Merge Request에서 승인 규칙 편집 방지를 선택합니다.
  4. 변경 사항 저장을 선택합니다.

이 변경은 모든 열린 Merge Request에 영향을 미칩니다.

이 필드를 변경하면 설정에 따라 모든 열린 Merge Request에 영향을 줄 수 있습니다:

  • 사용자가 이전에 승인 규칙을 편집할 수 있었고 이 동작을 비활성화하는 경우, GitLab은 모든 열린 Merge Request을 업데이트하여 승인 규칙을 강제합니다.
  • 사용자가 이전에 승인 규칙을 편집할 수 없었고 승인 규칙 수정을 가능하게 하는 경우, 열린 Merge Request은 그대로 유지됩니다. 이미 변경된 승인 규칙이 유지됩니다.

승인을 위한 사용자 재인증 필요

Self-Managed형되는 GitLab에서 기본적으로 SAML 인증을 사용하여 재인증이 가능합니다. 해당 기능을 숨기려면, 관리자가 ff_require_saml_auth_to_approve라는 특성 플래그를 비활성화할 수 있습니다. GitLab.com 및 GitLab Dedicated에서는 해당 기능을 사용할 수 있습니다.

잠재적인 승인자가 먼저 SAML 또는 비밀번호로 인증하도록 할 수 있습니다. 이 권한은 Code of Federal Regulations (CFR) Part 11에서 정의된 전자 서명을 가능하게 합니다.

전제 조건:

  • 이 설정은 최상위 그룹에서만 가능합니다.
  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 비밀번호 인증 및 SAML 인증을 활성화합니다. 다음에 대한 추가 정보:
  3. 왼쪽 사이드바에서 설정 > Merge Request을 선택합니다.
  4. Merge Request 승인 섹션에서 승인 설정으로 스크롤하여 승인을 위한 사용자 재인증(비밀번호 또는 SAML) 필요를 선택합니다.
  5. 변경 사항 저장을 선택합니다.

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

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

기본적으로 Merge Request에 대한 승인은 승인 후에 더 많은 변경을 추가하면 제거됩니다. GitLab Premium 및 Ultimate 티어에서는 다음을 수행하여 Merge Request에 더 많은 변경이 추가된 후에 기존 승인을 유지할 수 있습니다:

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

Merge Request이 UI에서 리베이스될 때는 승인이 제거되지 않습니다. 그러나 대상 브랜치가 변경되면 승인이 재설정됩니다.

Code Owners의 파일이 변경되면 승인을 제거합니다

새로운 커밋에서 파일이 변경된 경우 Code Owners로부터의 승인만 제거하려면:

전제 조건:

  • 프로젝트에 적어도 Maintainer 역할이 있어야 합니다.

다음을 수행합니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > Merge Request을 선택합니다.
  3. Merge Request 승인 섹션에서 승인 설정으로 이동하여 Code Owners의 파일이 변경된 경우 승인 제거를 선택합니다.
  4. 변경 사항 저장을 선택합니다.

관련 주제