Wir haben ein Konto in Github und hosten all unsere Projekte in Github (private Repositories).
Wir wollen den Kodierungsstandard und wahrscheinlich andere Hooks durchsetzen, die wir für interne Zwecke verwenden. Wir haben diese Hooks ziemlich gut für Subversion arbeiten lassen, da das Repository an einem einzigen Ort lokalisiert war. Die Verwaltung dieser Hooks war ausgezeichnet.
Mit Github sieht es so aus, als ob ich die Möglichkeit verliere, meine Hooks im Haupt-Repository (?) hinzuzufügen, daher fällt mir auf:
Ich suche nach Ideen / Vorschlägen, um mein Leben zu erleichtern, jede Hilfe wird sehr geschätzt.
Ich glaube nicht, dass dies ein Job für das VCS ist. Die Sache ist, dass Werkzeuge, die zur Durchsetzung von Codierungsstandards beitragen, normalerweise mit der Quelle und manchmal mit den Binärdateien arbeiten. Zum Beispiel kann in Java checkstyle auf Source ausgeführt werden, aber findbugs benötigt Quellen + kompilierten Code. Aber wie ich verstehe, ist das Ausführen solcher Tools auf einem Patch nicht effektiv genug. Diese Werkzeuge brauchen Kontext.
Ich würde also empfehlen, eine Instanz von Continuous Integration Server wie Jenkins zu erstellen und Checkout-Code von Github zu haben, wenn neue Änderungen vorliegen, statische Analyse-Tools kompilieren und ausführen, die Ergebnisse des Builds sollten an alle Teammitglieder gesendet werden . Es wird Ihnen nicht nur Feedback geben über Push-Änderungen, die richtig codiert sind, sondern auch nützliches Feedback geben, wenn der Code aus der Build-Perspektive sofort stabil ist.
Wie Eugene sagt, bin ich mir nicht sicher, ob das wirklich eine Aufgabe eines VCS ist. (aber wahrscheinlich gibt es einen Ort, an dem man das haken kann).
Da Sie Github verwenden, kennen Sie die API für den Commit-Status ? Auf diese Weise können Sie einen Dienst (wie Jenkins) einrichten, der automatisch den Codierungsstil überprüft und beispielsweise Komponententests ausführt, damit Sie sehen können, ob die Pull-Anforderung "sauber" oder "sicher" ist.
Tags und Links git github hook pre-commit-hook