Merge Request 승인 설정

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

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

Merge Request 승인 설정 편집

Merge Request 승인 설정을 보거나 편집하려면 다음 단계를 따르세요:

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

승인 설정

이러한 설정은 누가 Merge Request을 승인할 수 있는지를 제한합니다:

작성자의 승인 방지

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

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

작성자는 이 설정을 재정의하고 개별적인 Merge Request의 승인 규칙을 편집할 수 있습니다. 하지만, 다음 옵션 중 하나를 구성하지 않는 한:

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

기본적으로, Merge Request에 커밋을 하나 이상 추가한 사용자는 여전히 승인할 수 있습니다. 프로젝트 수준 또는 인스턴스 수준에서 개발자는 자신의 일부인 Merge Request을 승인하는 것을 방지할 수 있습니다. 이를 위해서:

  1. 왼쪽 사이드바에서 설정 > Merge Request을 선택합니다.
  2. Merge Request 승인 섹션에서 승인 설정으로 스크롤하여 커밋을 추가한 사용자의 승인 방지를 선택합니다. 이 확인란이 해제된 경우, 관리자가 인스턴스 수준에서 이를 비활성화했으며 이러한 설정은 프로젝트 수준에서 변경할 수 없습니다.
  3. 변경 내용 저장을 선택합니다.

GitLab의 버전에 따라, Merge Request에 커밋을 한 코드 소유자가 작업을 승인하는지 여부가 달라질 수 있습니다:

  • GitLab 13.10 및 이전 버전에서, Merge Request에 커밋을 한 코드 소유자는 해당 파일에 영향을 미치는 경우에도 승인할 수 있습니다.
  • GitLab 13.11 및 이후에서, Merge Request에 커밋을 한 코드 소유자는 해당 파일에 영향을 미치는 경우 승인할 수 없습니다.

자세한 내용은, 공식 Git Documentation를 참조하십시오.

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

기본적으로, 사용자는 프로젝트를 위해 만든 승인 규칙을 Merge Request마다 재정의할 수 있습니다. 사용자가 Merge Request에서 승인 규칙을 변경하는 것을 원치 않는 경우:

  1. 왼쪽 사이드바에서 설정 > Merge Request을 선택합니다.
  2. Merge Request 승인 섹션에서 승인 설정으로 스크롤하여 Merge Request에서 승인 규칙 편집 방지를 선택합니다.
  3. 변경 내용 저장을 선택합니다.

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

이 필드를 변경하면 다음과 같은 영향을 미칠 수 있습니다:

  • 사용자가 이전에 승인 규칙을 편집할 수 있었고, 이러한 행동을 비활성화하는 경우, 모든 열린 Merge Request이 승인 규칙을 강제로 이행하도록 업데이트됩니다.
  • 사용자가 이전에 승인 규칙을 편집할 수 없었고, 승인 규칙 편집을 활성화하는 경우, 열린 Merge Request은 변경되지 않습니다. 해당 변경 사항을 이미 가지고 있는 열린 Merge Request의 변경을 보존합니다.

승인하기 위한 사용자 재인증 필요

  • GitLab 16.6에서 GitLab.com 그룹에 SAML 인증을 사용하여 사용자 재인증 필요 소개됨. 기본 상태는 비활성화됨.
  • GitLab 16.7에서 Self-managed 인스턴스에 SAML 인증을 사용하여 사용자 재인증 필요 소개됨. 기본 상태는 비활성화됨.
  • GitLab 16.8에서 GitLab.com과 Self-managed 인스턴스에 SAML 인증을 사용하여 사용자 재인증 필요를 기본적으로 활성화 함.
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 승인 섹션에서 승인 설정으로 스크롤하여 승인하기 위한 사용자 재인증 필요를 선택합니다.
  5. 변경 내용 저장을 선택합니다.

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

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

기본적으로 MR(Merge Request)에 대한 승인은 승인 후 더 많은 변경 사항을 추가하면 제거됩니다. 그러나 GitLab Premium 및 Ultimate 티어에서는 MR에 추가 변경 사항이 있더라도 기존의 승인을 유지하려면 다음을 수행하세요:

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

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

Code Owners의 파일이 변경된 경우 승인 제거

커밋이 추가 될 때 파일이 변경된 Code Owners의 승인 만 제거하려면:

전제 조건:

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

다음을 수행하려면:

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

Settings cascading

Merge Request 승인 설정을 강제로 적용할 수도 있습니다.:

  • 인스턴스 수준에서, 모든 그룹 및 프로젝트에 적용되므로 해당 인스턴스의 모든 그룹 및 프로젝트에 적용됩니다.
  • 최상위 그룹에서, 모든 서브그룹 및 프로젝트에 적용됩니다.

그룹 또는 프로젝트에 상속 된 설정의 경우 해당 그룹 또는 프로젝트에서 변경할 수 없습니다.

관련 주제