Co to znamená
Politika má seznam enforcement: věci, které mají spouštět Majordomus (pre-commit hook spouštějící doctor, pre-push hook spouštějící finish --check). U každé položky doctor dokazuje čtyři věci: executable existuje, je spustitelný, hook nebo soubor CI pojmenovaný v wired_by existuje a je spustitelný a ten soubor příkaz skutečně volá — bez zahození jeho exit kódu. Deklarace, která kterékoli z nich nesplní, se hlásí jako nezapojená. Toto je nejdůležitější jednotlivá kontrola v nástroji.
Princip
lib/doctor.sh rozliší path vynucování (na PATH, relativní k repozitáři, absolutní, nebo jako cestu zapsanou přímo na řádku hooku), rozliší adresář hooků přes core.hooksPath nebo .git/hooks/, přečte soubor hooku, hledá majordomus <first-arg> a poté na stejném řádku hledá || true nebo || exit 0. wired_by: ci:<file> kontroluje soubor CI stejným způsobem; wired_by: manual se hlásí jako neověřeno, nikdy jako zapojeno. doctor to spouští proti repozitáři, v němž je nainstalován — včetně hooků tohoto projektu v CI.
Jak to vidět
printf '#!/bin/sh\nmajordomus doctor || true\n' > .git/hooks/pre-commit && chmod +x .git/hooks/pre-commit
majordomus doctor
# FAIL wiring doctor-on-commit — .git/hooks/pre-commit invokes it but swallows the exit code (|| true)Co nepokrývá
Prokazuje dosažitelnost, ne historii provádění: zapojený hook lze stále obejít, když někdo upraví .git/hooks nebo naklonuje jinde. Jsou to dokumentovaná omezení každého lokálního hooku, uvedená v bezpečnostních poznámkách, ne tichá selhání.
Proč existuje
Ve zdrojovém prostředí se našlo sedmnáct nezávislých případů kontroly zdokumentované jako blokující, přítomné na disku, spustitelné a nevolané ničím — včetně dobře navrženého commit guardu, jehož registrace se tiše ztratila, když nesouvisející nástroje přepsaly soubor nastavení, zatímco jeho testy a dokumentace zůstaly na místě. Deklarováno, ale nezapojeno je výchozí koncový stav vynucování, ne okrajový případ; kontrola, která na to selže, je produkt.