🧘🏻‍♂️ 생각, 개발 일반

GitHub Branch Protection Rule 적용하기, 예를 들어 PR merge 하려면 팀원 최소 2명은 approve 해야 merge 할 수 있는 기능

kukim 2022. 8. 18. 22:55

팀 프로젝트를 한다고 가정해봅니다.

팀원들이 기능 구현 후 PR을 보냅니다.

다른 팀원들의 코드 리뷰가 끝나지 않았지만 누구나, 언제든지 merge 버튼은 활성화되어있습니다.

아무런 룰 없이 merge 되는 것을 방지하기 위해 특정 브랜치에 Protection Rule을 설정하여 브랜치를 보호할 수 있습니다.

예를 들어 PR merge 하려면 최소 인원이 approve 해야 한다거나 테스트를 통과해야 하는 룰입니다.

 

Rule 생성 방법

-  저장소 -> Settings -> Branches -> Add rule

 

Rule 추가

 

몇 가지 Rule 소개

보다 자세한 내용은 GitHub 공식 문서를 참고해주세요. (Managing a branch protection rule)

 

Require a pull request before merging

해당 옵션을 선택하면, 룰이 적용된 브랜치에 커밋하려면 반드시 PR 해야 합니다.

+a) Require approvals 설정을 추가하여 최소 approve 인원을 설정할 수 있습니다. 아래 예는 최소 2명 조건의 옵션 설정입니다.

Rule 추가
룰을 설정하여 최소 2명이 approve 해줘야 merge 할 수 있다.

Require status checks to pass before merging

status check는, CI/CD의 결과가 모두 pass 해야 머지할 수 있는 옵션입니다.

예를 들어 CI에서 Test나 정적 분석기를 설정하였습니다. 정적 분석기를 통과하지 못하면 merge 할 수 없도록 rule을 설정할 수 있습니다.

정적 분석기 SonarCloud 통과해야 merge 할 수 있는 rule 설정
테스트 pass 여부

Require conversation resolution before merging

코드 리뷰를 통해 생성된 Conversation이 모두 solved 되었을 때만 머지할 수 있는 옵션입니다. 

모두 solve 되어야하는 rule
Resolve 되지 않은 Conversation 중 하나