Pre-commit-hooks
Oversikt
Section titled “Oversikt”Kommandoen archgate check --staged sjekker bare git-stagede filer mot ADR-reglene dine. Fordi den hopper over ustagede og usporede filer, kjører den raskt nok til å brukes som en pre-commit-hook uten å bremse arbeidsflyten din.
Når en sjekk feiler, blokkeres committen. Brudd skrives ut til stderr med filstier og linjenumre slik at du kan finne og fikse dem umiddelbart.
Lefthook
Section titled “Lefthook”Lefthook er en rask, kryssplattform git-hooks-behandler. Legg til følgende i lefthook.yml:
pre-commit: commands: adr-check: run: archgate check --stagedInstaller hooken med:
lefthook installHusky er et populært git-hooks-verktøy for Node.js-prosjekter. Legg til sjekken i pre-commit-hooken din:
archgate check --stagedSørg for at hook-filen er kjørbar:
chmod +x .husky/pre-commitHva skjer når sjekker feiler
Section titled “Hva skjer når sjekker feiler”Når archgate check --staged finner brudd, avslutter den med kode 1. Dette blokkerer committen. Utskriften inkluderer:
- ADR-ID-en og regelnavnet som ble brutt
- Filstien der bruddet ble funnet
- Linjenummeret (når tilgjengelig)
- En beskrivelse av hva regelen forventer
Fiks bruddene, stage filene på nytt med git add, og commit igjen.
Ytelse
Section titled “Ytelse”--staged-flagget begrenser sjekker til bare filene i git-stageområdet. Dette betyr:
- Et prosjekt med hundrevis av kildefiler, men bare tre stagede filer, vil bare sjekke de tre filene.
- Regler som ikke matcher noen stagede filer, hoppes helt over.
- Typiske pre-commit-sjekker fullføres på under et sekund.
Uten --staged skanner archgate check alle filer som matcher hver ADRs files-globmønster, noe som er nyttig for CI, men tregere for interaktiv bruk.
Nyttige flagg
Section titled “Nyttige flagg”| Flagg | Formål |
| ------------ | -------------------------------------------------------------------------------------------------------------------------- |
| --staged | Sjekk bare git-stagede filer (påkrevd for pre-commit) |
| --verbose | Vis beståtte regler og tidsinformasjon — nyttig for å feilsøke hvorfor en sjekk er treg eller hvilke regler som evalueres |
| --json | Skriv ut resultater som JSON — nyttig for å pipe til andre verktøy eller egendefinerte rapporteringsskript |
| --adr <id> | Sjekk bare regler fra en spesifikk ADR — nyttig for å isolere en enkelt regel under feilsøking |
| --ci | Skriv ut GitHub Actions-annotasjoner — bruk dette i CI-arbeidsflyter i stedet for pre-commit-hooks |
Kombinere med andre hooks
Section titled “Kombinere med andre hooks”Pre-commit-hooks kan kjøre flere kommandoer. For eksempel med Lefthook:
pre-commit: commands: lint: run: npm run lint typecheck: run: npm run typecheck adr-check: run: archgate check --stagedHver kommando kjører uavhengig. Hvis en kommando avslutter med en kode som ikke er null, blokkeres committen.