Přeskočit na obsah

Dostupné

Git Enforcement OS

Pravidlo, které kontroluje jen člověk v code review, platí do prvního spěchu. Hooky v .githooks/ ho kontrolují dřív, než commit vůbec vznikne.

Instalace
just hooks-install — nastaví core.hooksPath, bez ní nevynucuje nic
Stav
just hooks-status — hlásí, jestli jsou hooky opravdu nasazené
commit-msg
1 fragment: formát zprávy a povinné trailery
pre-commit
15 aktivních fragmentů: no-bridge, odkazy, python gates, hygiena, worktree guardy
pre-push
5 aktivních fragmentů: zákaz force-push na main, zákaz přímého pushe na main, brána kvality v profilu pre-push, značky konfliktů v celé pushované historii, kontrola statického reportu
Odstavené fragmenty
soubory *.disabled hook přeskočí a do počtů se nepočítají (dnes jeden v pre-commit a jeden v pre-push)

Commit je dokumentace, ne poznámka

Vyžaduje se konvenční předmět <typ>(<scope>): <shrnutí>, tělo na úrovni dokumentace — proč, co, jak, dopad, validace — a alespoň jeden traceability trailer.

Důvod je provozní, ne estetický. Tenhle repozitář bude za rok obsahovat rozhodnutí o interpretaci skenovaných dokumentů, u kterých je jediným dostupným vysvětlením text commitu. Jednořádkový commit je v takovém místě ztracená informace.

Fragmenty místo jednoho skriptu

Každý hook je tenký běhoun nad adresářem <hook>.d/ s očíslovanými skripty. Přidání kontroly je nový soubor, ne editace stovek řádků, a pořadí je čitelné z názvů.

Hooky nikdy nic nezacommitují. Hook, který commituje, je hook, který překvapí — a překvapivý hook si lidé vypnou. Vypnutý hook nevynucuje nic.

Obcházení

--no-verify je zakázané kořenovým pravidlem repozitáře, ne technicky znemožněné. Kdo hook obejde, obchází pravidlo vědomě, a to je celá ambice: udělat z toho rozhodnutí, ne nedopatření.

Kde to v repozitáři žije

  • .githooks/ — hooky a jejich očíslované fragmenty
  • scripts/git_enforcement.py — kontrola zprávy, trailerů a pre-push brány; instalace a stav hooků
  • docs/development/COMMIT_MESSAGE_FORMAT.md — tvar zprávy, povinné a meta trailery
  • docs/development/GIT_ENFORCEMENT.md — co který hook dělá a proč pre-push nespouští těžké testy

Souvisí

Zpět na sekci Roadmapa