Github에서 제공해주는 Branch Protection Rule를 설정 모두 알아보기
Github에는 Branch에 대한 다양한 설정을 할 수 있는 Branch Protection Rule이 있습니다.
Git flow,Github flow등 브랜치 전략 사용 시 브랜치를 사용할 일이 굉장히 많습니다.
특히 팀 프로젝트와 진행 시 브랜치 충돌이나 PR충돌 등 다양한 문제상황을 마주합니다.
오늘은 이러한 문제들을 해결하고 브랜치를 보호할 수 있는 Bracnh protection rules에 대해 알아 보겠습니다.
1. Require a pull Request befor merging
1. Require a pull Request befor merging
Mereg 전 PR 필요
- Merge 하기 전에 Pull Request가 반드시 필요!
1-1. Require approvals
Merge를 위해 필요한 승인 인원 수 설정
- Pull Request를 Merge를 위해 필요한 "approvals" 인원 수 설정
1-2. Dismiss stale pull request approvals when new commits are pushed
기존 승인 취소
- 리뷰에 새로운 커밋이 발생하는 경우 기존 승인을 취소
1-3. Require review from Code Owners
코드 오너 승인 필수
- 코드오너에 승인을 필수로 받아야 한다.
1-4. Restrict who can dismiss pull request reviews
Pull Request 취소 권한 부여
- 특정 팀, 사람에게 Pull Request를 취소할 수 있는 권한을 부여한다.
1-5. Allow specified actors to bypass required pull requests
Pull Request 룰 무시
- 특정 팀, 사람에게 Pull Request 설정 룰을 무시하고 Merge 할 수 있는 권한을 부여한다.
2. Require status checks to pass before merging
Mereg 전 상태 체크
- Github Action Workflow을 통해 테스트 코드 분석이나 정적분석등을 진행할 수도 있고 해당 flow를 통과해야 Merge 가능
1-6. Require branches to be up to date before merging
최신 브랜치 상태 유지
- Merge 전 브랜치가 최신상태여야 한다.
3. Require conversation resolution before merging
모든 Conversation 확인 후 Merge
- 코드리뷰를 통해 남겨진 모든 코멘트에 답을 달아야 Merge 가능하다.
4. Require signed commits
서명된 Commit만 Push 가능
- verify된 Commit들만 Push가 가능하다.
- Github GPG key를 발급 받은 사람이 커밋할 경우
- Verified라는 마크가 붙은 커밋만 푸시할 수 있다.
5. Require linear history
선형적 브랜치 관리,Mereg Commit 불가
- 스쿼시,리베이스만 허용.
- 브랜치 모양을 단순하게 관리하고 싶을때
6. Require merge queue
Pull Request 병합 큐 사용
- Merge queue는 Merge가 가능할 때 자동으로 merge하는 것을 예약할 수 있다.
7. Require deployments to succeed before merging
배포 성공 시 Merge 가능
- 배포를 성공해야만 Merge가 가능하다.
8. Lock branch
Read-Only
- 해당 브랜치에 Push 금지
- Read만 가능
9. Do not allow bypassing the above settings
모든 유저 브랜치 룰 우회 불가
- 관리자를 포함한 모든 유저에 대해 브랜치 룰 우회 Merge 기능을 막는다.
10. Restrict who can push to matching branches
특정 사용자만 브랜치에 Push 가능
- 브랜치에 Push를 할 수 있는 사용자를 지정한다.
- 나머지 사용자는 Push가 불가능하다.
10-1. Restrict pushes that create matching branches
특정 사용자만 브랜치 생성 가능
- 특정 사용자만 해당 브랜치 룰과 일치하는 브랜치를 생성할 수 있음
11. Allow force pushes
강제 Push 허용
- 특정 유저에게 강제 Push 권한 허용
12. Allow deletions
Branch 삭제 허용
- Push 권한이 있는 사용자에게 Branch 삭제 권한 허용
'DevOps > 깃허브' 카테고리의 다른 글
[Github] Jira 티켓번호 커밋 메세지 자동화 하기 (0) | 2024.01.31 |
---|---|
[Github Actions] Chat GPT(Open AI)로 코드리뷰 자동화 하기 (0) | 2024.01.26 |
[Github Actions] React 프로젝트 AWS S3, CloudFront 자동배포 하기 (0) | 2024.01.25 |
[Github] gitignore가 적용이 안될 때 (0) | 2024.01.17 |