Modül 5 · Modül 5 — Domain 5: Secure Development & Compliance · ⏱ 10-15 dakika

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?

KuralAçıklama
Require pull request reviewsPR merge için onay zorunlu
Require status checksCI geçmeden merge yok
Require signed commitsGPG/SSH imzalı commit zorunlu
Block force pushesForce push engellenir
Require linear historyMerge commit yasaklanır
Restrict deletionsBranch/tag silme engellenir
Max file sizeBü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, .pem gibi 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.