# Branch Protection 🔒 See also [repository.md](../repository.md) for repository-wide security settings. ## Enforcement 🔒 * Ruleset is **Enabled (Enforced)** 👉 **Meaning for contributors:** * All rules in this document are **actively enforced** on the default branch (`main`). * Contributors MUST comply; violations will block pushes/merges. --- ## Bypass 🚪 * Organization admins and repository admins can always bypass rules 👉 **Meaning for contributors:** * Normal contributors MUST follow all rules * Admins MAY merge without approvals or checks --- ## Branch Target 🎯 * Applies to: **`main` (default branch)** 👉 **Meaning for contributors:** * All rules apply when targeting `main`. * Feature branches are NOT restricted until a PR targets `main`. --- ## Restrictions 🚫 ### Restrict Updates ✅ * Direct pushes are blocked 👉 **Contributor impact:** * You MUST NOT push directly to `main` * You MUST use a Pull Request (PR) --- ### Restrict Deletions ✅ * Protected branch cannot be deleted 👉 **Contributor impact:** * You MUST NOT delete the main branch --- ### Restrict Creations ❌ * Branch creation is allowed 👉 **Contributor impact:** * You MAY create branches freely --- ## Pull Request Requirements 📋 ### Require Pull Request ✅ 👉 **Contributor impact:** * You MUST open a PR to merge into `main` * Direct commits to `main` are rejected --- ### Required Approvals: 2 ✅ 👉 **Contributor impact:** * You MUST get **2 approvals** before merging * Self-approval does not count --- ### Dismiss Stale Approvals ✅ 👉 **Contributor impact:** * If you push new commits: * Previous approvals are INVALIDATED * You MUST get approvals again --- ### Require Code Owner Reviews ✅ 👉 **Contributor impact:** * If you modify owned files: * A CODEOWNER MUST approve * PR cannot be merged without them --- ### Require Approval of Most Recent Push ✅ 👉 **Contributor impact:** * After your last commit: * Someone ELSE MUST approve again * You CANNOT approve your own changes --- ### Require Conversation Resolution ✅ 👉 **Contributor impact:** * All review comments MUST be resolved * Open discussions block merging --- ### Require Review from Specific Teams ❌ 👉 **Contributor impact:** * No fixed team is always required * Only CODEOWNERS matter --- ## Merge Strategy 🔀 ### Allowed Merge Method: Merge ✅ 👉 **Contributor impact:** * PRs are merged using merge commits * History MAY become non-linear --- ### Require Linear History ❌ 👉 **Contributor impact:** * Merge commits ARE allowed * You MAY see branching history --- ### Require Merge Queue ❌ 👉 **Contributor impact:** * PRs can be merged immediately after approval * No automatic queueing --- ## Status Checks (CI/CD) ✅ ### Require Status Checks to Pass ✅ 👉 **Contributor impact:** * Your PR MUST pass CI before merging --- ### Required Checks: NONE ⚠️ 👉 **Contributor impact:** * Currently, no checks are enforced * Effectively: nothing blocks merge here --- ### Require Branch to Be Up-To-Date ✅ 👉 **Contributor impact:** * You MUST update your branch before merging * Typically via: * merge `main` * or rebase --- ## Security 🔐 ### Require Signed Commits ✅ 👉 **Contributor impact:** * All commits MUST be signed (GPG/SSH) * Unsigned commits will be rejected --- ### Block Force Pushes ✅ 👉 **Contributor impact:** * You MUST NOT rewrite history on protected branches * `git push --force` is blocked --- ## Code Scanning 🔬 ### Require Code Scanning Results ✅ Configured tools: * CodeQL (High severity) * Hadolint (High severity) 👉 **Contributor impact:** * PR MUST NOT introduce high-severity issues * Otherwise merge is blocked --- ## Code Quality 🏆 ### Require Code Quality Results ✅ * Threshold: Warnings and higher 👉 **Contributor impact:** * You MUST fix code quality issues before merge --- ## Copilot Review 🤖 ### Automatically Request Copilot Review ✅ 👉 **Contributor impact:** * Copilot may automatically review your PR * It may comment on issues * It does not replace human approvals