GitHub führt CODEOWNERS für gezielte Code-Reviews ein

GitHub hat am 6. Juli 2017 mit CODEOWNERS eine Funktion für feste Zuständigkeiten bei Code-Reviews vorgestellt. Repository-Verantwortliche können damit festlegen, welche Personen oder Teams Änderungen an bestimmten Dateien prüfen sollen.

Das ist auch für große Spieleprojekte interessant. Quellcode für Engine, Werkzeuge, Buildsysteme und Plattformanbindungen liegt häufig in gemeinsamen Repositorys, wird aber von unterschiedlichen Teams betreut. Eine Datei mit klaren Zuständigkeiten kann den Review-Weg für solche Bereiche verkürzen.

CODEOWNERS ordnet Dateien Teams zu

Die Zuständigkeiten werden in einer Datei namens CODEOWNERS hinterlegt. Sie kann im Stammverzeichnis des Repositorys oder im Ordner .github liegen. Jede Zeile verbindet ein Dateimuster mit einem oder mehreren Benutzern oder Teams. Für alle Dateien kann ein Standardteam eingetragen werden, spezifischere Muster überschreiben diese Vorgabe.

GitHub fordert die eingetragenen Besitzer automatisch zur Prüfung auf, sobald ein Pull Request zu den betroffenen Dateien erstellt wird. Die Reihenfolge der Muster ist relevant: Das zuletzt passende Muster hat Vorrang. Dadurch können etwa Rendercode, Tools und Dokumentation verschiedenen Verantwortlichen zugewiesen werden.

Geschützte Branches erzwingen die Prüfung

Für strengere Abläufe ergänzt GitHub CODEOWNERS um eine Option für geschützte Branches. Ist sie aktiviert, muss für jede geänderte Datei mindestens ein zuständiger Code Owner eine Prüfung abgeben, bevor der Pull Request zusammengeführt werden kann. Die offizielle Dokumentation zu CODEOWNERS beschreibt die Datei und die Voraussetzungen für verpflichtende Reviews.

Damit ergänzt GitHub bestehende Regeln für lesbaren und wartbaren Quellcode. Einen ähnlichen Blick auf verbindliche Entwicklungsregeln liefern die C++ Core Guidelines, die am selben Entwicklungsstand auf sichere und verständliche C++-Programme zielen.

Weitere News

Weitere News

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein