GitLab Issue의 Merge Request

1. Merge Request

소스 브랜치에서 타겟 브랜치로 변경 내용을 통합하려면 Merge Request(MR)를 사용합니다.

Merge Request을 열면 merge 전에 변경 내용을 시각화하여 공동 작업할 수 있습니다. Merge Request에는 다음이 포함됩니다:

  • 요청에 대한 설명

  • 코드 변경 사항 및 인라인 코드 리뷰

  • CI/CD 파이프라인에 대한 정보

  • 토론 스레드에 대한 커멘트 섹션

  • 커밋 목록

2. Merge Request Approvals

Merge Request을 병합하기 전에 반드시 승인을 받도록 Merge Request을 구성할 수 있습니다. GitLab Free에서는 Developer 이상의 권한을 가진 모든 사용자가 Merge Request을 승인할 수 있지만, 이러한 승인은 선택 사항입니다. GitLab Premium과 GitLab Ultimate는 추가적인 유연성을 제공합니다:

작업을 병합하기 전에 승인자의 수와 유형에 대한 필수 규칙을 만들 수 있습니다.
특정 파일의 코드 소유자 역할을 하는 사용자 목록을 지정하고 작업을 병합하기 전에 해당 사용자의 승인을 받아야 합니다.

프로젝트별로 Merge Request 승인을 구성할 수 있으며, 일부 승인은 그룹 수준에서 구성할 수 있습니다. Merge Request 승인 규칙에 대한 그룹 수준 설정 지원은 이 에픽에서 추적됩니다. 자체 관리형 GitLab 인스턴스인 GitLab Premium 및 GitLab Ultimate의 관리자는 전체 인스턴스에 대한 승인도 구성할 수 있습니다.

Required approvals - Premium

Required approvals는 지정한 사용자 수와 유형에 따라 코드 검토를 시행합니다. 승인이 없으면 작업을 병합할 수 없습니다. Required approvals은 다양한 유즈 케이스를 지원합니다:

  • 리포지토리에 병합되는 모든 코드에 대해 검토를 적용

  • 승인 규칙을 통해 제안된 코드 변경에 대한 검토자 및 최소 검토자 수를 지정

  • 제안된 모든 코드 변경에 대해 백엔드, 프론트엔드, 품질 보증 또는 데이터베이스와 같은 검토자 카테고리를 지정

  • 변경된 파일의 코드 소유자를 사용하여 누가 작업을 검토해야 하는지 결정

  • 테스트 커버리지 감소를 유발하는 코드를 병합하기 전에 승인 필수

3. GitLab 실습

  • Core 서브그룹의 Database 프로젝트에 “Add approval rule” 설정

    • Rule name : Infra 팀 승인

    • Approvers : Infra Team 서브그룹

  • Merge request 생성

    • Core 서브그룹의 Database 프로젝트의 “DB 생성” 이슈 선택

    • Create merge request” 클릭

    • Create merge request and branch” 체크 확인

    • Branch name에서 “update-db-script" 입력

    • Description의 “Closes <ISSUE NUMBER>“ 삭제

    • Merge request 세부 정보 페이지에서 Code > Open in Web IDE를 선택하여 update-db-script 브랜치에서 파일을 편집합니다.

    • 왼쪽 파일 창에서 README.md를 클릭 후 내용 변경하고 Commit 클릭

    • Merge Request 페이지 중간에서 Mark as ready로 표시를 클릭하여 Merge Request을 초안 모드에서 해제

  • 코드 리뷰 및 변경사항 병합

    • Infra Team 서브그룹 멤버로 로그인

    • 생성된 Merge Request 확인

    • Approve 클릭