
=> 일단 보호 규칙으로는 PR 후 merge 시 최소 2명의 승인 받기
먼저 깃 레포를 생성해보자

레포 상단에 setting으로 들어가기

왼쪽에 Rules -> RuleSet-> new ruleset -> new branch ruleset

| 항목 | 설명 |
|---|---|
| 1️⃣ Ruleset Name | 규칙 세트의 이름 예: main-branch-protection, release-branch-rules여러 규칙 세트를 구분하기 위해 붙이는 이름 |
| 2️⃣ Enforcement Status | 규칙 적용 여부 - Active: 현재 규칙이 적용 중 - Disable: 규칙을 만들어 두되, 아직 적용하지 않음 |
| 3️⃣ Bypass List | 예외 사용자 / 팀 / 앱 지정 여기에 등록된 사용자나 팀은 규칙을 무시하고 강제 푸시나 삭제 가능 예: admin, CI/CD bot 계정 |
| 4️⃣ Target Branches | 규칙이 적용될 브랜치 지정 예: main, release/*, develop*, ? 등의 패턴을 사용해 여러 브랜치를 한 번에 지정 가능 |
| 5️⃣Rules (브랜치 규칙 옵션) | 세부 브랜치 보호 설정 항목들 예: Require PR before merging, Restrict deletions 등 |
rulesets 설정 내용을 참고해서 브랜치 보호 규칙을 설정하면 됩니다.

target branch -> include by pattern을 통해서 backend 로 시작하는 브랜치에만 보호규칙을 따로 적용하면 된다!
frontend, backend 에 적용되는 브랜치 보호 규칙 생성

-> PR 시 1명의 승인만 필요하게끔 설정, 브랜치 삭제 가능
| 옵션 | 설명 |
|---|---|
| Restrict creations | 브랜치를 새로 생성하는 것을 제한 (관리자만 가능) |
| Restrict updates | 기존 브랜치에 직접 푸시하는 것을 제한 |
| Restrict deletions | 브랜치 삭제 방지 |
| Require linear history | 병합 커밋(merge commit)을 금지 → rebase 기반만 허용 |
| Require deployments to succeed | 특정 환경(deploy env)에 성공한 뒤만 푸시 가능 |
| Require signed commits | GPG 서명된 커밋만 허용 |
| Require a pull request before merging | 직접 푸시 금지 → 반드시 PR을 통해 병합 |
| Require status checks to pass | GitHub Actions 등 CI 결과가 통과해야 머지 가능 |
| Block force pushes | git push --force 금지 |
| Require code scanning results | 코드 스캔 결과(예: GitHub Advanced Security)가 있어야 머지 가능 |
| Require code quality results | 코드 품질 점검 결과(예: SonarQube) 기준 충족 필요 |
| Automatically request Copilot code review | PR 생성 시 Copilot 코드 리뷰 자동 요청 |