Policy Enforcement ve Rulesets
Policy Enforcement & Rulesets
Bu derste neler öğreneceksin
- Branch protection rules ile repository rulesets arasındaki farkı açıklamak
- Enterprise ve organization düzeyinde ruleset uygulamasını anlamak
- Push rules ve merge kurallarını yapılandırmayı bilmek
GitHub, kod tabanını korumak için iki mekanizma sunar: eski branch protection rules ve modern repository rulesets. GH-100 Domain 5, özellikle rulesets’i sınar çünkü bunlar enterprise düzeyinde uygulanabilir.
Branch Protection Rules (Eski)
Repository düzeyinde tanımlanır. Özellikleri:
- Belirli bir branch adı veya pattern için çalışır (örn.
main,release/*) - Repo ayarlarından yapılandırılır
- Enterprise düzeyinde toplu uygulama yoktur
- Actor bypass (belirli kullanıcı/team’e muafiyet) sınırlıdır
Repository Rulesets (Yeni)
Rulesets, branch protection’ın daha güçlü ve esnek halidir:
- Repository, organization veya enterprise düzeyinde tanımlanabilir
- Birden fazla repo’ya aynı anda uygulanabilir
- Branch ve tag kurallarını destekler
- Granular bypass: belirli rollere, team’lere veya uygulamalara bypass izni verilebilir
- Audit log: Her kural değişikliği loglanır
Ruleset Neler Içerebilir?
| Kural | Açıklama |
|---|---|
| Require pull request reviews | PR merge için onay zorunlu |
| Require status checks | CI geçmeden merge yok |
| Require signed commits | GPG/SSH imzalı commit zorunlu |
| Block force pushes | Force push engellenir |
| Require linear history | Merge commit yasaklanır |
| Restrict deletions | Branch/tag silme engellenir |
| Max file size | Büyük dosya push’unu engeller |
Enterprise Düzeyinde Uygulama
Enterprise → Policies → Rulesets
→ New ruleset → Target: all repositories / pattern ile
→ Kuralları seç → Save
Enterprise rulesets, tüm organizasyonlardaki tüm repo’lara uygulanır. Org admins override edemez.
Push Rules
Push rules, commit’in repo’ya ulaşmadan önce kontrol edilmesidir:
- File path restriction: Belirli dosya yollarına push yasaklanabilir
- File extension restriction:
.env,.pemgibi uzantılar engellenebilir - Commit message pattern: Convention’a uymayan commit’ler reddedilebilir
Sınav noktası: Rulesets > branch protection rules. Modern GH-100 soruları genellikle rulesets’i tercih eder.