첫 번째, Merge request approvals 기능을 사용하기 전에 해당 branch를
Protected branches에 추가해야 함
그렇지 않으면 Target branch에 해당 branch가 표시되지 않아서 All
branches를 적용해야 함
두 번째, Protected branches에서 Allowed to merge와 Allowed to push
and merge 두 기능의 merge는 같은 기능임
세 번째, 해당 내용은 Protected branches의 Allowed to force push와
Code owner approval 두 기능 모두 default 값을 사용함
네 번째, 아래 내용은 Protected branches의 기능 테스트와 Merge
request approvals를 이용한 issue 생성, branch 생성,
push,
merge를 수행하는 과정임
다섯 번째, 일반적인 흐름은 아래와 같음 branch 생성 -> code 수정 ->
code commit&push -> merge request 생성 ->
merge request 승인
-> merge
Search GitLab (돋보기 버튼) -> Your work -> 해당 프로젝트 선택 -> Settings -> Repository -> Protected branches
특정한 branche를 추가적으로 제한하고 싶을때 사용하는 기능
Allowed to merge(머지 허용됨) 기능과 Allowed to push and merge
기능이 존재함
두 기능 모두 한 사람, 여러 사람, 그룹 등에게 허용이 가능함
admin 계정이 아닌, 일반 사용자(개발자)의 계정에서 personal/19-12312 branch로 push 진행 시 아래와 같은 오류가 발생
personal/19-12312 branch의 Allowed to merge, Allowed to push and merge에 일반 사용자 계정 추가
일반 사용자 계정에게 권한을 부여했기 때문에, 정상적으로 push가 성공
Search GitLab -> Your work -> 해당 프로젝트 선택 -> Settings ->
Merge requests -> Merge request approvals
Protected branches에서 Allowed to push and merge, Allowed to merge는
있지만 Allowed to push는 없음
push 권한을 주려면 merge 권한도 줘야 하기 때문에 merge를 막는 기능이
필요함
그래서 Merge request approvals를 사용해야 함
main branch, dev branch 각각 승인자 설정 승인자로는 한 사람, 여러 사람, 그룹 등이 가능함
Search GitLab -> Your work -> Projects -> 해당 프로젝트 선택 -> Plan -> Issues
issue 담당자를 지정
issue에 대응하는 branch를 생성
push 전
push 완료
push 후
Search GitLab -> Your work -> Projects -> 해당 프로젝트 선택 -> Code -> Merge requests
본격적으로 변경 된 내용을 target branch(dev branch)에 반영해야 함
Approval rules를 클릭하여 승인 규칙을 확인할 수 있음
merge request approvals가 설정되어 있는 걸 볼 수 있음
또한, 미리 설정하지 않고 merge request를 생성할 때 add approval rule 기능을 사용할 수도 있음
Changes 항목을 눌러서 코드가 올바르게 변경되었는지 확인 한 후, 생성
merge request 생성 완료
merge request 완료 후, Merge blocked된 상태 (승인자의 승인이 필요한 상황)
admin 계정으로 접속한 후, merge request 승인
승인 완료 후, merge를 진행하면 아래와 같이 이력이 나옴
target branch(dev)에 정상적으로 반영됨