Merge Request 승인

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

Merge Request을 구성하여 Merge하기 전에 승인해야 합니다. GitLab Free는 모든 개발자 및 이상의 권한을 가진 사용자가 Merge Request을 승인할 수 있지만, 이런 승인은 선택 사항입니다. GitLab PremiumGitLab Ultimate은 추가적인 유연성을 제공합니다:

  • 작업이 Merge되기 전에 필요한 규칙을 생성하여 결재자의 수와 유형을 지정합니다.
  • 특정 파일의 코드 소유자 디렉터리을 지정하고, 작업이 Merge되기 전에 그들의 승인이 필요합니다.
  • GitLab Premium 및 GitLab Ultimate은 전체 인스턴스에 대한 승인을 구성할 수 있습니다. merge_requests_approvals.md를 통해 구성하세요.

프로젝트별로 Merge Request 승인을 구성하고 일부 승인은 그룹 수준에서도 구성할 수 있습니다. Merge Request 승인 규칙의 그룹 수준 설정은 이 epic에서 추적됩니다.

승인 동작 작업

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

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

  • 프로젝트가 필요로 하는 레벨의 감독 및 보안을 위한 Merge Request 승인 규칙 및 설정.
  • GitLab UI 또는 Merge request approvals API를 통해 Merge Request 승인 규칙 및 설정 구성.

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

Merge Request 승인

적격한 결재자가 열린 Merge Request 페이지를 방문할 때, GitLab은 Merge Request 본문 이후에 다음 중 하나의 버튼을 표시합니다:

  • 승인: Merge Request에 필요한 승인 수가 아직 충족되지 않았습니다.
  • 추가로 승인: Merge Request에 필요한 승인 수가 이미 충족되었습니다.
  • 승인 철회: Merge Request을 보는 사용자가 이미 Merge Request을 승인했습니다.

적격한 결재자는 또한 /approve 빠른 조치를 사용하여 Merge Request에 코멘트를 추가할 수 있습니다. 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
  • GitLab 13.9에서 GitLab Premium로 이전되었습니다.

필수 승인은 지정한 횟수와 유형의 사용자에 의해 코드 검토를 강제화합니다. 승인하지 않을 경우 작업은 Merge할 수 없습니다. 필수 승인은 여러 사용 사례를 가능하게 합니다:

무효한 규칙

  • GitLab 15.1에서 도입되었습니다.
  • 글로벌하게 사용가능한 상태로 변경되었으며, 기본적으로 비활성화되어 있습니다.
Self-managed GitLab에서는 기본적으로 이 기능을 사용할 수 있습니다. 기능을 숨기려면 관리자가 invalid_scan_result_policy_prevents_merge라는 피처 플래그를 비활성화할 수 있습니다.

승인 규칙을 만족시킬 수 없는 경우, 해당 규칙은 자동 승인으로 표시됩니다. 다음과 같은 조건에 해당됩니다:

  • 유일한 적격 결재자는 Merge Request 작성자입니다.
  • 적격 결재자(그룹 또는 사용자)가 규칙에 할당되지 않았습니다.
  • 필요한 승인 수가 적격 결재자의 수보다 많을 경우.

이러한 규칙은 해당 Merge Request을 차단하는 것이 아니라 자동으로 승인됩니다. 단, Merge Request 승인 정책을 통해 생성된 무효한 승인 규칙은 조치가 필요함으로 표시되어 해당 Merge Request을 차단하고 있습니다.

관련 주제