Repo에서 setting눌러 설정화면으로 간다.
왼쪽에 메뉴에 있는 "Branches"탭을 클릭한다.
add rule을 클릭한다.
보호규칙이 적용될 브랜치 이름 패턴을 입력하면된다.
패턴은 fnmatch를 따른다.
release라는 단어가 들어간 브랜치에 적용하고싶다면 release
release로 시작하는 브랜치에 적용하고싶다면 release
release로 시작하는 브랜치제외 적용하고싶다면 [!release]
와일드카드 문자로 확장이 가능하기 때문에 여러 보호규칙이 하나의 브랜치에 적용 될 때도 있다.
이 경우 특정 브랜치의 이름이 포함 될 수록 우선순위가 높다. 만약 특정브랜치 이름이 포함된 규칙이 여러개라면 최신순으로 우선순위가 높다.
그래서 기존 보호규칙에서 예외를 두고싶다면 우선순위가 높은 생성규칙을 생성하면된다.
브랜치로 적용될 커밋들은 반드시 보호되지 않는 브랜치로 일단 커밋된 후 PR과정을 거쳐서 리뷰된 다음 머지되도록 하는 규칙이다.
예를들면 dev브랜치에 해당 보호규칙을 적용하면 각자 자기 브랜치(ex:feature)에서 커밋한 후 PR을 통해서 dev에 작업한 코드가 반영되도록 하는 것이다.
서브 옵션또한 살펴보겠다.
몇 명이 PR 승인을 해야 적용가능한 코드로 바뀌는지 설정하는 것
새로운 승인 코드가 추가로 들어올 경우, 기존 승인 리뷰 무효할것인지 여부
코드 소유자에게도 PR 승인을 받아야하는지 여부
체크시 해당 보호규칙이 적용된 브랜치에 머지가 되는 경우 반드시 status check를 통과해야 한다. 반영되려는 커밋이 특정 테스트를 통과하는지 자동으로 검증하게 설정이 가능하다.
체크시 테스트가 항상 최신 브랜치 상태에서 테스트 되도록 한다.
코드가 머지되기 전에 모든 대화 내용을 Resolve 하도록 강제한다.
작성자가 직접 서명한 커밋만 허용한다.
머지 커밋이 히스토리에 남지 않게한다.
배포가 성공해야 머지가 가능하게 함
위 설정을 우회하는걸 금함 (철저히 룰을 지키게하는 것)
강제 푸시 허용
삭제 허용