🛡️

Hook za preverjanje pred commitom

Preveri vašo kodo, preden Claude ustvari commit: zažene preverjanje tipov, teste ali lastne skripte in prepreči pokvarjene commite.

Hook·2 razdelkov·1 min branja
codingdevops
Install Prompt

Paste this into Claude Code to set it up:

V svojo datoteko ~/.claude/settings.json želim dodati hook PreToolUse, ki prestreže klice orodja Bash z ukazom »git commit« in najprej zažene preverjanje.

V settings.json pod ključ "hooks" dodaj tole:

"PreToolUse": [
  {
    "matcher": "Bash",
    "command": "echo $CLAUDE_TOOL_INPUT | grep -q 'git commit' && npx tsc --noEmit 2>&1 || true"
  }
]

To pred vsakim commitom preveri, ali so v kodi napake tipov v TypeScriptu. Če tsc najde napake, jih Claude vidi in jih lahko odpravi pred commitom. tsc zamenjaj z ukazom za preverjanje, ki ga imaš najraje (jest, vitest, lasten skript), odvisno od tvojega projekta.

01Kaj počne

Varnostna mreža pred vsakim commitom

Hook za preverjanje pred commitom prestreže klice orodja Bash, ki vsebujejo git commit, in pred izvedbo commita zažene vaš sklop preverjanj. Če preverjanje tipov spodleti ali se testi pokvarijo, Claude vidi napake in jih lahko odpravi, preden poskusi znova. To je vaša zadnja obramba pred commitom kode, ki se ne prevede ali ne prestane testov.
1

Claude sproži commit

Ko Claude zažene ukaz Bash, ki vsebuje <code>git commit</code>, se dogodek PreToolUse sproži pred izvedbo ukaza.

2

Hook zazna namero commita

Ukaz v <code>$CLAUDE_TOOL_INPUT</code> preveri niz »git commit«. Če ga najde, sproži korak preverjanja. Drugi ukazi Bash pridejo skozi nespremenjeni.

3

Preverjanje se zažene

Izvedejo se vaša nastavljena preverjanja: preverjanje tipov s tsc, testni sklop z jest ali vitest ali lasten skript za preverjanje. Vsaka napaka ustvari izpis, ki ga Claude lahko prebere.

4

Claude se odzove na rezultat

Če preverjanje uspe, se commit izvede običajno. Če spodleti, Claude vidi napake, popravi kodo in commit poskusi znova s čisto kodo.

02Strategije preverjanja

🔷
Preverjanje tipovZaženite <code>tsc --noEmit</code>, da ujamete napake tipov, ne da bi ustvarili izhodne datoteke. Hitro, zanesljivo in ujame velik razred napak, ki bi sicer prišle skozi. Najprimernejše za projekte TypeScript, kjer je varnost tipov prednost.
🧪
Testni sklopZaženite <code>jest --bail</code> ali <code>vitest run</code>, da pred commitom izvedete testni sklop. Zastavica <code>--bail</code> se ustavi ob prvi napaki za hitrejšo povratno informacijo. Najprimernejše za projekte z dobro pokritostjo s testi, kjer je uspešnost testov trden pogoj.
📜
Lasten skriptHook usmerite na skript, kot je <code>~/.claude/hooks/pre-commit.sh</code>, ki zaporedoma zažene več preverjanj: preverjanje tipov, lint, teste in vse drugo, kar vaš projekt zahteva. Najprimernejše za ekipe s posebnimi merili kakovosti, ki presegajo standardna orodja.
Hook za preverjanje pred commitom | Ekosistem NativeAI Hub