병합 요청 승인 설정

Tier: 프리미엄, 얼티메이트 Offering: GitLab.com, Self-managed, GitLab Dedicated

병합 요청 승인을 구성하여 승인 규칙이 사용 사례에 부합하는지 확인할 수 있습니다. 또한 작업이 병합되기 전에 승인해야 하는 사용자의 수와 유형을 정의하는 승인 규칙을 구성할 수도 있습니다. 병합 요청 승인 설정은 병합 요청이 완료되는 방향으로 이러한 규칙을 적용하는 방법을 정의합니다.

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

병합 요청 승인 설정 편집

단일 프로젝트에 대한 병합 요청 승인 설정을 보거나 편집하려면 다음을 수행합니다:

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

인스턴스 또는 최상위 그룹에서 설정 연쇄

승인 규칙 설정을 관리를 간소화하기 위해 가능한 넓은 수준에서 승인 규칙을 구성합니다. 생성된 규칙은 다음에 적용됩니다:

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

그룹이나 프로젝트가 설정을 상속하면 해당 상속 그룹이나 프로젝트에서는 설정을 변경할 수 없습니다. 설정이 생긴 곳인 최상위 그룹이나 인스턴스에서 설정을 변경해야 합니다.

병합 요청 작성자의 승인 방지

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

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

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

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

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

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
  2. 설정 > 병합 요청을 선택합니다.
  3. 승인 섹션에서 승인 설정으로 스크롤하여 커밋을 추가한 사용자의 승인 방지를 선택합니다. 이 확인란을 선택 해제하면 관리자가 인스턴스 레벨에서 이를 비활성화했으며 프로젝트 수준에서 이를 변경할 수 없습니다.
  4. 변경 사항 저장을 선택합니다.

코드 소유자가 병합 요청에 커밋을 추가하면 해당 병합 요청을 승인할 수 없습니다.

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

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

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

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

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

이 필드를 변경하면 다음과 같이 모든 열린 병합 요청에 영향을 줄 수 있습니다:

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

사용자 재인증 필요하여 승인함

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

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

전제 조건:

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

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

Tier: 프리미엄, 얼티메이트 Offering: GitLab.com, 자체 관리, GitLab Dedicated

기본적으로 병합 요청에 대한 승인은 승인 후에 더 많은 변경 사항을 추가하면 제거됩니다. GitLab 프리미엄 및 얼티메이트 티어에서는 병합 요청에 추가 변경 사항이 있는 경우 기존 승인을 유지하려면:

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

GitLab은 병합 요청의 차이점을 식별하기 위해 git patch-id를 사용합니다. 이 값은 상당히 안정적이고 고유한 식별자이며, 병합 요청 내부에서 승인을 재설정하는 더 현명한 결정을 가능하게 합니다. 병합 요청에 새 변경 사항을 푸시하면 patch-id가 이전 patch-id와 평가되어 승인을 재설정해야 하는지 확인됩니다. 이렇게 함으로써, feature 브랜치에서 git rebase 또는 git merge <target>와 같은 명령을 실행할 때 GitLab이 더 나은 재설정 결정을 내릴 수 있게 됩니다.

코드 소유자가 파일을 변경할 경우 승인 제거

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

전제 조건:

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

다음을 수행합니다:

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

관련 주제