-
Notifications
You must be signed in to change notification settings - Fork 4
2.2.1 GitHub Branch Protection: Sicherheit und Qualität im Entwicklungsprozess
Christoph Backhaus edited this page Jan 9, 2025
·
1 revision
Branch Protection in GitHub ist ein mächtiges Werkzeug, um die Integrität und Qualität des Codes in einem Repository zu gewährleisten. Dieser Wiki-Beitrag erklärt, warum und wie wir Branches schützen, sowie die verschiedenen Einstellungsmöglichkeiten und ihre Auswirkungen auf den Entwicklungsprozess.
Branchschutz bietet mehrere Vorteile:
- Qualitätssicherung: Erzwingt Code-Reviews und verhindert direkte Änderungen an wichtigen Branches.
- Konsistenz: Gewährleistet einheitliche Entwicklungspraktiken im gesamten Team.
- Sicherheit: Schützt vor versehentlichen oder unbefugten Änderungen.
- Transparenz: Fördert offene Kommunikation und Zusammenarbeit im Entwicklungsprozess.
Um Branch Protection Rules einzurichten, folgen Sie diesen Schritten:
- Navigieren Sie zu Ihrem Repository auf GitHub.
- Klicken Sie auf "Settings" in der oberen Menüleiste.
- Wählen Sie "Branches" in der linken Seitenleiste.
- Unter "Branch protection rules", klicken Sie auf "Add rule".
- Geben Sie den Branch-Namen ein, den Sie schützen möchten (z.B. "main").
- Konfigurieren Sie die gewünschten Schutzregeln.
- Menüname: "Require a pull request before merging"
- Beschreibung: Erzwingt, dass Änderungen über Pull Requests eingebracht werden müssen.
- Empfehlung: Aktivieren, um Code-Reviews zu fördern.
- Menüname: "Required approvals"
- Beschreibung: Legt fest, wie viele Genehmigungen ein Pull Request benötigt.
- Empfehlung: Mindestens 1, idealerweise 2 für wichtige Branches.
- Menüname: "Dismiss stale pull request approvals when new commits are pushed"
- Beschreibung: Setzt Genehmigungen zurück, wenn neue Commits gepusht werden.
- Empfehlung: Aktivieren, um sicherzustellen, dass die neuesten Änderungen überprüft werden.
- Menüname: "Require status checks to pass before merging"
- Beschreibung: Erfordert erfolgreiche CI/CD-Checks vor dem Mergen.
- Empfehlung: Aktivieren, wenn CI/CD-Pipelines vorhanden sind.
- Menüname: "Restrict who can push to matching branches"
- Beschreibung: Begrenzt, wer direkt in den Branch pushen kann.
- Empfehlung: Aktivieren und auf Administratoren beschränken.
- Verzögerungen: Strenge Regeln können den Entwicklungsprozess verlangsamen.
- Komplexität: Neue Teammitglieder müssen sich an den Prozess gewöhnen.
- Overhead: Erhöhter Verwaltungsaufwand für Code-Reviews und Pull Requests.
- Passen Sie die Regeln an die Bedürfnisse Ihres Teams und Projekts an.
- Schulen Sie alle Teammitglieder in den festgelegten Prozessen.
- Überprüfen und aktualisieren Sie die Regeln regelmäßig.
- Balancieren Sie Sicherheit mit Entwicklungsgeschwindigkeit.
Als Teil des Onboarding-Prozesses empfehlen wir folgende Übung:
- Richten Sie Branch Protection für den main-Branch Ihrer ersten Übungs-App ein.
- Konfigurieren Sie mindestens drei verschiedene Schutzregeln.
- Bitten Sie Ihren Lernpartner, zu versuchen, eine der Regeln zu brechen (z.B. direkter Push auf main).
- Diskutieren Sie die Ergebnisse und Erfahrungen im Team.
Diese praktische Übung hilft, die Wichtigkeit und Funktionsweise von Branch Protection zu verstehen und fördert gleichzeitig die Zusammenarbeit im Team.