Gå till innehållet

Branch Protection - Main

Standard för hur main-branchen skyddas i detta repository.

Ruleset: Main branch protection

Target: Default branch (main) Enforcement: Active

Regler

Regel Beskrivning
Deletion Förhindrar att branchen raderas
Non-fast-forward Blockerar force push
Required linear history Kräver linjär historik (squash/rebase)
Pull request Kräver PR med godkännande innan merge

Pull request-krav

Parameter Värde Beskrivning
required_approving_review_count 1 Minst 1 godkännande krävs
dismiss_stale_reviews_on_push true Tidigare godkännanden ogiltigförklaras vid ny push
require_code_owner_review true En code owner (enligt CODEOWNERS) måste godkänna
require_last_push_approval true Den som pushar sist kan inte själv godkänna
required_review_thread_resolution false Review-trådar behöver inte vara lösta
allowed_merge_methods squash Enbart squash merge tillåts

Bypass

Repository-administratörer (RepositoryRole 5) kan bypassa reglerna vid nödsituationer.

Vad innebär require_code_owner_review?

När require_code_owner_review är aktiverat räcker det inte att vem som helst godkänner en PR. Minst en person som listas i CODEOWNERS för de ändrade filerna måste godkänna.

Exempel:

  • Du ändrar .github/workflows/ci.yml → @mastertyko eller @Kristofers måste godkänna (de äger /.github/)
  • Du ändrar .github/CODEOWNERS → @Andreas-Samhall eller @Rickard-Samhall måste godkänna

Utan denna regel tilldelas code owners fortfarande som reviewers, men det är bara en rekommendation - vem som helst med skrivrättigheter kan godkänna.

Konfiguration

Ruleset-konfigurationen finns i branch-protection.json.

Konfigurera via CLI

# Läs nuvarande rulesets
gh api repos/Samhall-AB/arkitektur/rulesets

# Visa detaljer för ett specifikt ruleset
gh api repos/Samhall-AB/arkitektur/rulesets/RULESET_ID

# Skapa ruleset från JSON-filen
gh api repos/Samhall-AB/arkitektur/rulesets --method POST --input docs/standards/branch-protection/branch-protection.json

# Uppdatera befintligt ruleset
gh api repos/Samhall-AB/arkitektur/rulesets/RULESET_ID --method PUT --input docs/standards/branch-protection/branch-protection.json