Dieses Dokument erklärt, wie die Repository-Einstellungen konfiguriert werden müssen, damit Pull Requests (PRs) verpflichtend sind und nur der Repository-Owner Reviews durchführen kann.
Mit den folgenden Einstellungen wird sichergestellt:
- ✅ Alle Änderungen müssen über Pull Requests erfolgen
- ✅ Direktes Pushen zum
mainBranch ist nicht erlaubt - ✅ Nur @rbrands kann Pull Requests reviewen und approven
- ✅ Ein genehmigtes Review ist erforderlich vor dem Merge
Die Datei .github/CODEOWNERS wurde bereits erstellt. Sie definiert @rbrands als Code Owner für alle Dateien im Repository.
- Gehe zu https://github.com/rbrands/python-playground
- Klicke auf Settings (Einstellungen)
- Wähle im linken Menü Branches aus
- Klicke auf Add branch protection rule (oder "Add rule")
- Bei "Branch name pattern" eingeben:
main
- ✅ Require a pull request before merging
- ✅ Require approvals: Setze auf mindestens 1 Approval
- ✅ Dismiss stale pull request approvals when new commits are pushed (optional, aber empfohlen)
- ✅ Require review from Code Owners - WICHTIG! Dies stellt sicher, dass nur @rbrands reviewen kann
- ✅ Require status checks to pass before merging (optional, falls du CI/CD verwendest)
- ✅ Require branches to be up to date before merging (empfohlen)
- ✅ Do not allow bypassing the above settings - WICHTIG! Dies verhindert, dass die Regeln umgangen werden
- ✅ Restrict who can push to matching branches
- Füge nur @rbrands hinzu oder lasse es leer für maximale Sicherheit
- Dies verhindert, dass andere direkt pushen können
- Scrolle nach unten und klicke auf Create oder Save changes
- Fork des Repositories erstellen oder einen neuen Branch erstellen
- Änderungen im Branch vornehmen
- Pull Request öffnen
- Warten auf Review und Approval von @rbrands
- Nach Approval kann der PR gemergt werden
- Pull Requests reviewen
- Bei Bedarf Änderungen anfordern
- Nach erfolgreichem Review approven
- Pull Request mergen
Nach der Einrichtung kannst du testen, ob die Einstellungen funktionieren:
- Versuche direkt zum
mainBranch zu pushen - dies sollte blockiert werden - Erstelle einen Test-Branch und einen Pull Request
- Der PR sollte den Status "Review required from @rbrands" anzeigen
- Nur nach deinem Approval sollte der Merge-Button aktiviert werden
- CODEOWNERS: Diese Datei in
.github/CODEOWNERSdefiniert automatisch Required Reviewers - Branch Protection: Wird in GitHub Settings → Branches konfiguriert
- Dokumentation: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches
✅ Vorteil: Die CODEOWNERS-Datei ist versioniert und Teil des Repositories, so dass die Reviewer-Zuweisung automatisch erfolgt.
🔒 Sicherheit: Mit "Do not allow bypassing the above settings" kann auch der Repository-Owner die Regeln nicht umgehen (empfohlen für maximale Code-Qualität).