Merge Requests

Merge(머지)란 개발 브랜치(Develop Branch)를 검증 브랜치(Main Branch)에 이관하는 작업으로 개발 환경의 소스를 검증 환경으로 병합하는 과정입니다.

멤버는 개발 브랜치를 검증 브랜치로 Merge 요청하고, 프로젝트 관리자는 Merge 요청된 내역을 확인하고 승인합니다.

프로젝트 권한

Git Repository 권한

Merge 사용 기능

프로젝트 관리자

Maintainer

Merge Request 생성,

Merge 승인

멤버

Developer

Merge Request 생성

게스트

Reporter

모두 사용할 수 없음

Merge Request의 자세한 설명은 Git 매뉴얼을 참고해 주세요.

Merge Requests 조회

개발 브랜치를 검증 브랜치에 Merge 요청한 목록을 확인합니다.

1

[Merge Request] 메뉴를 선택하여 사용자가 포함된 프로젝트 카드 목록을 확인합니다.

2

화면 상단에 프로젝트 구분 탭을 사용하여 상태 별 프로젝트 목록을 확인할 수 있으며 기본 상태 값은 [Running]입니다. [All] 탭 선택 시 전체 프로젝트 목록을 확인할 수 있습니다.

이미지_2024-07-30_094447536

3

[Merge Requests] 메뉴 선택 시 사용자가 assignee(Merge 승인자)로 등록된 My Assigned 카드가 선택됩니다.

이미지_2024-07-30_094631712

4

My Assigned를 포함하여 모든 프로젝트는 카드 형태로 나타나며 각 프로젝트에 생성된 서버(DB 제외) 클릭 시 해당 서버의 전체 Merge Request 내역을 확인할 수 있습니다.

이미지_2024-07-30_094804506

5

서버 선택 시 “Open” 상태의 Request 목록이 조회됩니다.

이미지_2024-07-30_094836564

Merge Request는 Open, Merged, Closed 3가지 상태가 있습니다.

Merge Request 상태

설명

Open

개발 브랜치(develop)가 검증 브랜치(main)로 Merge 요청된 상태

Merged

개발 브랜치(develop)가 검증 브랜치(main)로 Merge 승인된 상태

Closed

Merge가 거부된 상태, Merge되지 않고 종료된 상태

6

Request 목록의 제목 클릭 시 GitLab(Git Repository)으로 이동하여 선택한 Merge Request 상세 정보를 확인합니다.

이미지_2024-07-30_094947443

[More] 버튼을 클릭하면 선택된 서버의 전체 Merge Request 목록을 확인할 수 있는 Git Repository로 이동합니다.

Merge Requests 추가

개발 브랜치를 검증 브랜치로 병합(Merge) 요청하는 과정으로 프로젝트 관리자 및 멤버 권한의 사용자가 사용할 수 있습니다.

1

Merge 진행할 서버의 Git Repository로 이동하여 [Code > Merge Requests] 메뉴로 이동합니다.

이미지_2024-07-30_095058819

2

Merge requests 메뉴로 이동하여 [New merge request] 버튼을 클릭합니다.

이미지_2024-07-30_095122992

3

Source branch는 Merge 요청할 Develop Branch를 Target branch는 반영할 Main Branch를 선택합니다.

이미지_2024-07-30_095244537

4

브랜치가 선택 되었다면 [Compare branches and continue] 버튼을 클릭하여 Merge request 추가 작성 화면으로 이동합니다.

브랜치 선택이 잘못된 경우 화면의 Error 메시지가 노출되며 Merge Request가 진행되지 않습니다.

이미지_2024-07-30_095344408

5

Merge request의 내용을 입력합니다.

이미지_2024-07-30_095418242

1Merge할 개발 브랜치(develop)과 반영될 검증 브랜치(main)를 확인합니다.

2주요 커밋 메시지를 타이틀로 작성합니다.

3커밋 메시지 적용 항목 및 설명을 작성합니다.

4Merge Request를 승인하여 Merge 반영할 승인자를 선택합니다. Assignee를 선택할 경우 지정된 Merge 승인자는 포털의 Merge request > My Assigned 카드에서 해당 내용을 확인할 수 있습니다.

5Delete source branch when merge request is accepted. 체크를 반드시 해제합니다. 해제하지 않으면 개발 브랜치(develop)는 삭제됩니다.

6

작성 완료 후 [Create merge request] 버튼을 클릭하여 Merge 요청을 완료합니다.

브랜치 Merge

프로젝트에 추가된 Merge 요청 목록을 확인하고 승인합니다. Merge 승인은 Git Repository에 Maintainer 권한인 프로젝트 관리자 권한만 사용할 수 있습니다.

1

프로젝트 관리자에게 할당된 Merge 요청 내역을 확인한 후, 승인할 제목을 클릭하여 Git Repository의 Merge Requests 상세 화면으로 이동합니다.

이미지_2024-07-30_095940383

2

GitLab에 접속한 계정이 Merge 승인자의 경우 [Merge] 버튼이 노출됩니다. Merge할 개발 브랜치의 수정 내역을 확인하고 Merge 버튼을 클릭하면 승인되어 Open 상태가 Merged 상태로 변경됩니다.

이미지_2024-07-30_100019812

만약 Merge 확인 창에 ‘Delete source branch’ 가 체크되어 있다면 화면에서 체크 박스를 반드시 해제해 주세요. 체크 후 Merge 진행 시 개발 브랜치가 삭제됩니다.

이미지_2024-07-30_100049393

3

Merge 승인되면 검증 브랜치 빌드가 자동으로 진행됩니다. 진행 내역은 하단 Pipeline을 통해 확인할 수 있습니다.

이미지_2024-07-30_100117423

운영 태그(release-*) 관리

TobeDevOps는 프로젝트 검증 브랜치를 운영 환경에 배포하는 방법으로 git 태그(tag) 기능을 사용하여 버전을 관리합니다.

TobeDevOps에서 제공하는 빌드 기능은 태그(release-*) 명칭에 규칙이 적용됩니다.

위 규칙에 따라 검증 브랜치의 소스를 태깅하면 자동으로 운영 환경에 빌드가 진행되며 프로젝트 관리자만 태깅할 수 있습니다.

태그 확인하기

1

태그를 확인할 서버의 Git Repository로 이동합니다.

이미지_2024-07-30_102709552

프로젝트 구성의 컨테이너 정보에서 각 컨테이너의 Git URL을 통해 Repository로 이동하거나 [빌드 > 프로젝트 카드 > STG 탭]의 Pipeline 메시지를 클릭하여 이동할 수 있습니다.

2

이동한 화면에서 [Gitlab > Code > Tags] 메뉴로 이동하여 태그된 목록을 확인합니다.

이미지_2024-07-30_102803921

태그 생성하기

1

[Tags] 메뉴의 우측 상단 [New tag] 버튼을 클릭하여 태그 생성 화면으로 이동합니다.

이미지_2024-07-30_102817505

2

태깅할 브랜치를 선택하고 태그명을 작성하여 새로운 태그를 생성합니다.

이미지_2024-07-30_102841819

1[Tag name]에서 사용할 태그명을 태그 명명 규칙을 준수하여 작성합니다. release- 로 생성된 태그만 자동 빌드되며 태그명은 버전 관리를 위해 release-x.x.x(major, minor, patch) 형식을 권장합니다.

2[Create Form]에서 태깅 할 브랜치를 선택합니다. 반드시 검증 브랜치를 선택해 주세요.

3[Message]에서 태그 정보를 작성합니다. 메시지 입력은 별도 양식 없이 자유롭게 작성할 수 있습니다.

3

태그 생성 정보를 입력하고 [Create tag]버튼을 클릭하여 생성한 태그를 확인합니다.

이미지_2024-07-30_103004752

release-* 규칙에 맞게 태그를 생성하였을 경우, 빌드 메뉴에서 운영 환경이 자동 빌드 되는 것을 확인할 수 있습니다.

이미지_2024-07-30_103100138