Gå til innholdet

archgate check

Kjør alle automatiserte ADR-samsvarskontroller mot kodebasen.

Terminal window
archgate check [options] [files...]

Laster inn hver ADR med rules: true i frontmatteren, kjører den tilhørende .rules.ts-filen og rapporterer brudd med filstier og linjenumre. Når filstier oppgis som posisjonsargumenter, kjøres bare ADR-er der files-mønstrene matcher disse filene.

ValgBeskrivelse
--stagedSjekk kun git-stagede filer (nyttig for pre-commit-hooks)
--base [ref]Sammenlign endrede filer mot en basisreferanse (autodetekteres hvis utelatt)
--jsonMaskinlesbar JSON-utdata
--ciGitHub Actions-annotasjonsformat
--adr <id>Sjekk kun regler fra en bestemt ADR
--verboseVis beståtte regler og tidsinformasjon
--max-warnings <n>Mislykkes (kode 1) når antallet advarsler overskrider n. Bruk 0 for å mislykkes ved enhver advarsel.
ArgumentBeskrivelse
[files...]Valgfrie filstier for å begrense kontrollene. Bare ADR-er der files-mønstrene matcher vil kjøres. Støtter stdin-piping.
KodeBetydning
0Alle regler bestått. Ingen brudd funnet.
1Ett eller flere brudd oppdaget, eller advarsler overskred --max-warnings.
2Feil ved regelkjøring (f.eks. feilformatert regel, sikkerhetsskannerblokkering).

Sjekk hele prosjektet:

Terminal window
archgate check

Sjekk kun stagede filer før commit:

Terminal window
archgate check --staged

Sjekk alle filer endret på gjeldende gren vs main:

Terminal window
archgate check --base main

Sjekk en enkelt ADR:

Terminal window
archgate check --adr ARCH-001

Behandle enhver advarsel som en feil (nyttig i CI):

Terminal window
archgate check --max-warnings 0

Sjekk bestemte filer (bare matchende ADR-er kjøres):

Terminal window
archgate check src/foo.ts src/bar.ts

Pipe fra git (sjekk kun endrede filer):

Terminal window
git diff --name-only | archgate check --json

Hent JSON-utdata for CI-integrasjon:

Terminal window
archgate check --json

Hent GitHub Actions-annotasjoner:

Terminal window
archgate check --ci

Som standard autodetekterer archgate check hovedgrenen og fyller ctx.changedFiles med grendifferansen (git diff <base>...HEAD) pluss eventuelle ikke-committede endringer i arbeidstreet (stagede, ustagede og usporede ikke-ignorerte filer). Dette gjør at regler for avhengigheter på tvers av filer fungerer lokalt — ikke bare i CI — og sikrer at endringer som ennå ikke er committet, også sjekkes.

Basisreferansen løses i denne prioritetsrekkefølgen:

PrioritetKildechangedFiles fylles med
1--stagedKun git-stagingområdet
2--base <ref>git diff <ref>...HEAD + arbeidstre-endringer
3.archgate/config.json baseBranchgit diff <resolved-ref>...HEAD + arbeidstre-endringer
4Git-autodeteksjongit diff <detected-ref>...HEAD + arbeidstre-endringer
5Deteksjon mislykkesTom (fullskanmodus)

Autodeteksjon prøver origin/HEAD, deretter origin/main, origin/master, lokal main og lokal master. For å sette en prosjektstandard, legg til baseBranch i .archgate/config.json:

{ "baseBranch": "main" }

Under kjøring sender archgate check advarsler for vanlige feilkonfigurasjoner som kan forårsake trege eller uventede resultater:

AdvarselTilstandAnbefaling
Bredt filomfangEn ADRs files-mønstre løser til mer enn 1000 filer eller glob-skanningen tar over 2 sekunderBegrens files-mønstrene i ADR-frontmatteren til å kun omfatte relevante kildekatalogene
Uscopet gitignore-fravalgrespectGitignore: false er satt uten et files-omfangLegg til files-mønstre for å unngå skanning av alle filer inkludert node_modules/, .git/ osv.
Alle filer ekskludert av gitignoreEksplisitte files-mønstre matcher filer, men alle treff er ekskludert av .gitignoreSett respectGitignore: false i ADR-frontmatteren for å inkludere gitignorerte filer

Disse advarslene vises i standardutdataene og påvirker ikke avslutningskoden. De vises også i JSON-utdata når --json brukes (som brudd med "severity": "warning").

Som standard endrer advarsler (både diagnostikk og regelrapporterte brudd med "severity": "warning") aldri avslutningskoden. Send --max-warnings <n> for å få archgate check til å avslutte med kode 1 når det totale antallet advarsler overskrider n. --max-warnings 0 mislykkes ved enhver advarsel. Når terskelen overskrides, er feltet warningsExceeded i JSON-utdataene true og pass er false.

Når --json brukes, er utdataene et enkelt JSON-objekt:

{
"pass": false,
"total": 4,
"passed": 3,
"failed": 1,
"warnings": 0,
"errors": 1,
"infos": 0,
"ruleErrors": 0,
"warningsExceeded": false,
"truncated": false,
"results": [
{
"adrId": "ARCH-001",
"ruleId": "register-function-export",
"description": "Command file must export a register*Command function",
"status": "fail",
"totalViolations": 1,
"shownViolations": 1,
"violations": [
{
"message": "Command file must export a register*Command function",
"file": "src/commands/broken.ts",
"line": 1,
"endLine": 1,
"endColumn": 42,
"severity": "error"
}
],
"durationMs": 12
}
],
"durationMs": 42
}
FeltTypeBeskrivelse
messagestringHva bruddet er
filestring?Relativ filsti
linenumber?Startlinje (1-basert)
endLinenumber?Sluttlinje (1-basert) — for presis editor-utheving
endColumnnumber?Sluttkolonne (0-basert) — for presis editor-utheving
fixstring?Foreslått fiks (kun veiledning)
severitystring"error", "warning" eller "info"

Når en regelfil blokkeres av sikkerhetsskanneren (f.eks. bruker Bun.spawn()) eller en tilhørende .rules.ts-fil mangler, vises resultatet i JSON-utdataene med status: "error" og ruleId: "security-scan". Brudd inkluderer den eksakte filen og linjen til den blokkerte koden (eller rules: true-linjen i ADR-en for manglende tilhørende filer).