
Commit-Hook
Ein Commit-Hook ist ein kleines Programm, das automatisch startet, sobald jemand eine Änderung am Programmcode abspeichert. Es prüft die Änderung und kann das Speichern abbrechen, wenn etwas nicht stimmt.
Programmierer speichern ihre Arbeit nicht einfach als Datei, sondern in einer Art Versionsarchiv. Jeder abgespeicherte Arbeitsstand darin heißt Commit. Ein Commit-Hook ist ein kleines Hilfsprogramm, das genau in diesem Moment automatisch losläuft. Es schaut sich die Änderung an, bevor sie endgültig ins Archiv wandert. Findet es ein Problem, bricht es den Vorgang ab und zeigt eine Meldung. Der Name kommt vom englischen Wort für Haken: Das Programm hängt sich an einen festen Punkt im Ablauf.
Fehler abfangen, bevor sie ins Archiv wandern
Fehler sind umso teurer, je später sie auffallen. Ein Tippfehler, der sofort auffällt, kostet zehn Sekunden. Derselbe Tippfehler, der erst nach drei Wochen im laufenden Betrieb auffällt, kostet unter Umständen einen ganzen Arbeitstag. Ein Commit-Hook verschiebt die Prüfung an den frühestmöglichen Punkt.
Besonders wichtig ist das bei Passwörtern und Zugangsschlüsseln. Solche Schlüssel öffnen zum Beispiel den Zugang zu einer KI wie ChatGPT und kosten bei jeder Nutzung Geld. Landen sie versehentlich im Archiv und dieses Archiv ist öffentlich, finden automatische Suchprogramme sie oft in wenigen Minuten. Ein Commit-Hook durchsucht die Änderung vorher nach solchen Zeichenketten und blockiert im Verdachtsfall.
Der zweite große Nutzen ist Einheitlichkeit. In einem Team mit zwanzig Leuten hat jeder eigene Gewohnheiten beim Formatieren von Code. Ein Hook, der jede Änderung automatisch in dasselbe Format bringt, beendet diese Diskussion dauerhaft.
Vom Auslöser bis zum Abbruch
Die Versionsverwaltung, meist das Programm Git, sucht beim Speichern in einem festgelegten Ordner nach Hook-Dateien. Findet sie dort eine, führt sie diese aus. Der Hook selbst ist ein ganz normales kleines Programm, oft nur zwanzig Zeilen lang. Er kann in fast jeder Programmiersprache geschrieben sein.
Entscheidend ist, was der Hook am Ende zurückmeldet. Meldet er Null, bedeutet das « alles in Ordnung » und das Speichern läuft weiter. Meldet er irgendeine andere Zahl, bricht Git den Commit ab. Genau dieser eine Zahlenwert gibt dem Hook seine Macht.
Es gibt mehrere Anknüpfpunkte. Der pre-commit-Hook läuft vor dem Speichern und prüft den Code selbst. Der commit-msg-Hook prüft danach den Begleittext, den der Programmierer zur Änderung schreibt. Ein häufiger Irrtum: Hooks werden nicht automatisch mit dem Projekt verteilt. Sie liegen nur auf dem eigenen Rechner, weshalb Teams zusätzliche Werkzeuge nutzen, um sie überall gleich einzurichten.
Commit-Hooks in KI-Projekten und in Firmen
Wer selbst programmiert und ein Projekt auf einer Plattform wie GitHub ablegt, stößt schnell auf Hooks. Weit verbreitet ist das Werkzeug « pre-commit », mit dem man Prüfungen aus einer einfachen Konfigurationsdatei zusammenstellt. Eine typische Einrichtung dauert wenige Minuten.
In Firmen sind Commit-Hooks Teil der Sicherheitsstrategie. Sie sind die erste von mehreren Kontrollstufen, danach folgen Prüfungen auf zentralen Servern. Man verlässt sich nie allein auf den Hook, denn ein Entwickler kann ihn mit einem einzigen Zusatzbefehl übergehen.
Neu ist die Rolle von KI dabei. Programme wie GitHub Copilot schreiben inzwischen große Teile des Codes selbst und erzeugen dabei mehr Änderungen pro Tag als früher. Manche Teams lassen deshalb im Hook zusätzlich ein Sprachmodell auf die Änderung schauen. In Nachrichten zu Softwaresicherheit tauchen Hooks meist dann auf, wenn eine Firma versehentlich Zugangsdaten veröffentlicht hat.