logo hsb.horse

Architecture Decision Record

Git-Hook-Automatisierung mit lefthook

lefthook wird eingeführt, um Biome-Formatierung und Linting bei Commit und Push automatisch auszuführen.

Angenommen #tooling #quality #git-hook

Git-Hook-Automatisierung mit lefthook

Entscheidung

  • Für die Verwaltung von Git Hooks wird lefthook eingesetzt.
  • In pre-commit werden für gestagte Dateien biome format --write und anschließend biome check --write ausgeführt.
  • In pre-push werden ebenfalls für gestagte Dateien biome format --write und anschließend biome check --write ausgeführt.
  • Die Hook-Definitionen werden zentral in lefthook.yml im Repository-Root verwaltet.

Kontext

Wenn Formatierung oder Linting lokal vergessen werden, entstehen im Review unnötige Diffs und Hinweise. Außerdem waren die Hook-Setups je Entwickler uneinheitlich, daher war ein versioniertes und reproduzierbares Verfahren notwendig.

Alternativen

  • Native Git Hooks in .git/hooks manuell einrichten: geringe Reproduzierbarkeit und schwer teilbar.
  • Husky: bewährte Lösung, aber in diesem Fall wurde lefthook wegen der schlankeren, einfacheren Konfiguration bevorzugt.
  • Nur CI-Prüfung: langsameres Feedback und keine frühe lokale Erkennung.

Auswirkungen

  • Qualitätsprüfungen laufen automatisch vor Commit und vor Push.
  • Formatierungsprobleme werden früh erkannt, was Stilabweichungen reduziert.
  • Bei Fehlern werden Commit/Push blockiert, bis Korrekturen erfolgt und die Checks erneut ausgeführt wurden.