깃허브 - 브랜치 보호 규칙 설정 방법과 옵션 설명 [Branch Protection Rule]

Moveheon·2023년 8월 26일
3

깃허브

목록 보기
1/2

(2023년 08월 27일 기준일자의 설정 방법입니다.)

브랜치 보호 규칙 (Branch Protection Rule) PR 생성 방법 - 깃허브 설정 방법

깃허브 사이트의 레포지토리 설정에서 브랜치 탭으로 이동합니다.

우상단의 "Add rule" 버튼을 클릭하고 보호 규칙 생성합니다.

=========================================================

브랜치 이름 패턴
Branch name pattern

  • 브랜치 이름 패턴을 작성합니다.

작성하는데 있어서 브랜치 이름은 fnmatch 문법을 사용해야 합니다.

  • 특정한 브랜치 이름을 입력하거나, 와일드카드(*)를 사용해서 모든 브랜치에 적용시키는 규칙을 만들 수 있습니다.

와일드 카드의 기능

  • 특정한 단어가 들어간 모든 브랜치에 적용합니다.
    ex) *브랜치명*

  • 모든 브랜치에 적용합니다.
    ex) *

  • 특정 단어로 시작하는 모든 브랜치에 적용합니다.
    ex) 브랜치명*

  • 특정 단어로 끝나는 모든 브랜치에 적용합니다.
    ex) *브랜치명

이 와일드 카드의 기능을 이용하여

여러 보호 규칙을 하나의 브랜치에 적용할 수가 있습니다.

  • 이 경우의 보호 규칙 우선순위는 특정 브랜치의 이름을 포함하고 있을 수록 우선순위가 높게 적용됩니다.

특정 브랜치의 이름을 포함하고 있는 보호 규칙이 여러가지라면

  • 먼저 생성된 규칙이 우선순위가 높게 적용됩니다.

*, ?, ] 등의 특수 문자가 포함된 경우에도 오래된 규칙이 우선순위를 가집니다.

기존에 존재하는 특정 보호 규칙에 예외 사항을 추가하고 싶다면, 우선순위가 높은 새로운 보호 규칙을 추가하면 됩니다.

=========================================================

브랜치 보호 규칙입니다.

Require a pull request before merging

  • 병합 이전에 PR을 요구합니다. 각자 브랜치(보호되지 않은)에서 작업을 한 다음, PR을 통해 공동 브랜치로 코드를 반영합니다.

    	Require approvals
    	- 일정 이상의 인원이 승인해야 병합이 진행됩니다.
    	- 요구 멤버가 3이면 3명의 승인이 있어야 병합이 진행 됩니다.
    
    	Dismiss stale pull request approvals when new commits are pushed
    	- PR 승인 이후 새로운 코드가 추가될 때, 기존의 PR 승인을 무효화 하는지 여부를 정합니다.
    	- 아마도 기존의 PR 승인이 유지된다면, 이전 버전으로 병합되는 문제가 발생하는 듯 합니다.
    
    	Require review from Code Owners
    	- 코드 작성자에게도 리뷰를 받는지 여부를 정합니다.
    
    	Require approval of the most recent reviewable push
    	- 가장 최근에 승인한 검토자의 승인을 받는지 여부를 정합니다.
    	- PR 검토자가 변경사항을 몰래 바꾸거나 자신의 코드를 승인하지 못하도록 만들어 졌습니다.
    	- 이 항목이 체크될 경우 검토자가 코드를 수정할 때 다른 사용자를 찾지 않고서는 승인될 수 없습니다.

Require status checks to pass before merging

  • 병합 이전에 상태 테스트 통과를 요구합니다. 반영되는 코드가 특정한 테스트를 통과하는지 자동으로 검증합니다.

    	Require branches to be up to date before merging
    	- 병합 이전에 항상 최신 브랜치 상태에서 상태 테스트가 진행되도록 합니다.

Require conversation resolution before merging

  • 병합 이전에 PR에 존재하는 대화, 코멘트(conversation)가 모두 해결되어야 하는지를 요구합니다.
  • 코드 리뷰에서 발생하는 문제의 논의가 해결 되었을 때에 병합이 진행 됩니다.

Require signed commits

  • 서명된 커밋들만을 요구합니다.
  • verify 마크가 찍힌 커밋들만 푸시가 가능합니다.

Require linear history

  • 선형 히스토리만을 요구합니다.
  • 스쿼시나 리베이스를 통한 병합만 허용하도록 합니다.
  • 머지된 커밋이 히스토리에 남지 않기를 원할 때 사용합니다.
  • 특정된 브랜치의 히스토리를 추적하기 쉽게 하거나, 브랜치 모양을 단순하게 관리하고 싶을 때 사용합니다.
  • 하나의 브랜치로 유지해야 할 필요가 있을 때 사용합니다.

Require deployments to succeed before merging

  • 병합되기 전 배포에 성공해야함을 요구합니다.
  • 레포지토리에 세팅 된 환경 중 배포 성공을 확인할 대상을 선택할 수 있습니다.

Lock branch

  • 브랜치를 푸시가 불가능한 읽기전용으로 만듭니다.

Do not allow bypassing the above settings

  • 위의 설정을 관리자 권한을 가진 유저도 해당하도록 합니다.

=========================================================

관리자를 포함한 모두를 대상으로 하는 규칙입니다.

Allow force pushes

  • 강제 푸시를 허용합니다.
  • 대부분의 경우에서 사용하면 안됩니다.

Allow deletions

  • 삭제를 허용합니다.

0개의 댓글

관련 채용 정보