Merge Request 승인

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

Merge Request이 Merge되기 전에 승인해야 하는 경우를 구성할 수 있습니다. GitLab Free는 모든 사용자 중 개발자 이상의 권한을 가진 사용자가 Merge Request을 승인할 수 있지만, 이러한 승인은 Optional입니다. GitLab PremiumGitLab Ultimate는 추가적인 유연성을 제공합니다:

  • 작업이 Merge되기 전에 필요한 규칙을 작성할 수 있습니다.
  • 특정 파일에 대한 코드 소유자 디렉터리을 지정하고, 작업이 Merge되기 전에 해당 사용자들의 승인을 요구할 수 있습니다.
  • GitLab Premium 및 GitLab Ultimate의 경우, 전체 인스턴스에 대한 승인을 구성할 수 있습니다. 여기에서 승인을 구성할 수 있습니다.

Merge Request 승인은 프로젝트별로 구성할 수 있으며, 일부 승인은 그룹 레벨에서 구성할 수 있습니다. Merge Request 승인 규칙의 그룹 수준 설정 지원은 이 epic에서 추적됩니다.

승인 작업 방법

Merge Request 승인 규칙로 프로젝트에 작업이 Merge되기 전에 필요한 최소 승인 수를 설정할 수 있습니다. 또한, 어떤 유형의 사용자가 작업을 승인할 수 있는지를 정의하여 이러한 규칙을 확장할 수 있습니다. 만들 수 있는 규칙의 몇 가지 예는 다음과 같습니다:

또한 다음을 구성할 수 있습니다:

  • 더 많은 통제와 보안 수준을 위해 Merge Request 승인에 대한 추가 설정입니다.
  • GitLab UI 또는 Merge Request 승인 API를 통해 Merge Request 승인 규칙 및 설정입니다.

승인은 Merge Request이 Merge된 후에 변경할 수 없습니다.

Merge Request 승인

자격이 있는 승인자가 열린 Merge Request을 방문하면 GitLab은 Merge Request 본문 이후에 다음 버튼 중 하나를 표시합니다:

  • 승인: Merge Request에는 필요한 승인이 아직 없습니다.
  • 추가로 승인: Merge Request에는 필요한 승인이 이미 있습니다.
  • 승인 철회: Merge Request을 본 사람이 이미 Merge Request을 승인했습니다.

자격이 있는 승인자는 또한 Merge Request에 코멘트를 추가할 때 /approve 빠른 조치를 사용할 수 있습니다. Merge Request을 승인한 검토자 디렉터리에는 녹색 확인 표시 ()가 표시됩니다.

구성한 승인 수 및 유형을 받은 후에는 다른 이유로 작업이 차단되지 않는 한 Merge Request이 Merge될 수 있습니다. Merge Request은 Merge 충돌, 해결되지 않은 스레드, 또는 CI/CD 파이프라인 실패와 같은 다른 문제로 차단될 수 있습니다.

작성자가 자신의 Merge Request을 승인하는 것을 방지하려면 프로젝트 설정에서 작성자 승인 방지를 활성화하세요.

승인 규칙 재정의를 활성화하면 기본 승인 규칙 변경 전에 작성된 Merge Request에는 영향이 없습니다. 유일한 예외는 규칙의 대상 브랜치 변경입니다.

선택적 승인

GitLab은 모든 사용자 중 개발자 이상의 권한을 가진 사용자가 Merge Request을 승인할 수 있습니다. GitLab Free에서 승인은 선택 사항이며, 승인이 없어도 Merge Request이 승인 없이 Merge될 수 있습니다.

필수 승인

Tier: Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated
  • 13.9에서 GitLab Premium으로 이전됨.

필수 승인은 지정한 사용자 수와 유형에 따라 코드 리뷰를 강제하는데 사용됩니다. 승인이 없으면 작업은 Merge될 수 없습니다. 필수 승인을 사용하면 다음과 같은 여러 가지 사례를 지원할 수 있습니다:

  • 리포지터리에 Merge되는 모든 코드의 검토를 강제합니다.
  • 제안된 코드 변경에 대해 리뷰어를 지정하고 최소 리뷰어 수를 승인 규칙을 통해 지정할 수 있습니다.
  • 모든 제안된 코드 변경에 대해 백엔드, 프론트엔드, 품질 보증 또는 데이터베이스와 같은 리뷰어 카테고리를 지정할 수 있습니다.
  • 변경된 파일의 코드 소유자를 사용하여 누가 작업을 검토해야 하는지 결정할 수 있습니다.
  • 테스트 커버리지가 감소하는 코드를 Merge하기 전에 승인을 요구할 수 있습니다.
  • GitLab Ultimate의 사용자는 취약점을 도입할 수 있는 코드를 Merge하기 전에 보안 팀의 승인을 요구할 수 있습니다.

유효하지 않은 규칙

  • GitLab 15.1에서 도입.
  • GitLab 15.11에서 변경되었습니다. 기본적으로 invalid_scan_result_policy_prevents_merge이라는 플래그로 변경되었습니다. 기본적으로 비활성화됨.
  • GitLab 16.2에서 일반적으로 이용 가능하게 됨. 피처 플래그 invalid_scan_result_policy_prevents_merge이 제거되었습니다.

승인 규칙이 충족되지 않을 때마다 규칙이 자동 승인됨으로 표시됩니다. 이는 다음과 같은 상태에 해당됩니다:

  • 유일한 자격이 있는 승인자가 Merge Request의 작성자인 경우.
  • 자격이 있는 승인자(그룹 또는 사용자)가 승인 규칙에 할당되지 않은 경우.
  • 필요한 승인 수가 자격이 있는 승인자 수보다 많은 경우.

이러한 규칙은 각자의 Merge Request을 차단하지 않고 자동으로 승인되어 있으며, Merge Request 승인 정책을 통해 작성된 유효하지 않은 승인 규칙은 Action required로 제시되어 해당 Merge Request이 자동으로 승인되지 않고 차단됩니다.

관련 주제