GitHub Branch Protection Rule 적용하기, 예를 들어 PR merge 하려면 팀원 최소 2명은 approve 해야 merge 할 수 있는 기능
팀 프로젝트를 한다고 가정해봅니다.
팀원들이 기능 구현 후 PR을 보냅니다.
다른 팀원들의 코드 리뷰가 끝나지 않았지만 누구나, 언제든지 merge 버튼은 활성화되어있습니다.
아무런 룰 없이 merge 되는 것을 방지하기 위해 특정 브랜치에 Protection Rule을 설정하여 브랜치를 보호할 수 있습니다.
예를 들어 PR merge 하려면 최소 인원이 approve 해야 한다거나 테스트를 통과해야 하는 룰입니다.
Rule 생성 방법
- 저장소 -> Settings -> Branches -> Add rule
몇 가지 Rule 소개
보다 자세한 내용은 GitHub 공식 문서를 참고해주세요. (Managing a branch protection rule)
Require a pull request before merging
해당 옵션을 선택하면, 룰이 적용된 브랜치에 커밋하려면 반드시 PR 해야 합니다.
+a) Require approvals 설정을 추가하여 최소 approve 인원을 설정할 수 있습니다. 아래 예는 최소 2명 조건의 옵션 설정입니다.
Require status checks to pass before merging
status check는, CI/CD의 결과가 모두 pass 해야 머지할 수 있는 옵션입니다.
예를 들어 CI에서 Test나 정적 분석기를 설정하였습니다. 정적 분석기를 통과하지 못하면 merge 할 수 없도록 rule을 설정할 수 있습니다.
Require conversation resolution before merging
코드 리뷰를 통해 생성된 Conversation이 모두 solved 되었을 때만 머지할 수 있는 옵션입니다.