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.

