Docs CLI
Configuration
Two files live in every gridtrue project: a small runtime config and a validation manifest.
The CLI reads two YAML files under .gridtrue/ at the repo root. They are committed with the code, reviewed like code, and scaffolded by gridtrue init on a fresh clone.
.gridtrue/config.yaml
Small, rarely-touched file. Tells the CLI which org owns the repo and which remotes are gridtrue remotes. Most teams commit it as-is for the life of the project.
yaml
version: 1
org: acme
repo: payments
remotes:
- name: gridtrue
url: git@gridtrue.io:acme/payments.git
defaults:
profile: pre-push.gridtrue/validate.yaml
The validation manifest. Declares the runtimes your validations need and the pipelines the CLI can run. Every profile (pre-commit, pre-push, release) is a list of steps that emit attestations.
yaml
version: 1
runtimes:
- id: go
kind: container
image: ghcr.io/gridtrue/runner-go:1.23@sha256:c7c…
- id: web
kind: native
sdk: node@22.11.0
pipelines:
pre-commit:
- runtime: go
run: go vet ./...
attest: build:go
pre-push:
- runtime: go
run: go test ./...
attest: test:go
- runtime: web
run: pnpm --filter web run test
attest: test:web
release:
- runtime: go
run: go build -o dist/api ./cmd/api
attest: build:go
- runtime: web
run: pnpm --filter web run build
attest: build:webStep fields
- runtime
- id of a runtime declared above. Required.
- run
- Shell command to execute in that runtime. Required.
- attest
- Predicate name for the emitted attestation. Shows up verbatim in the ledger. Required.
- paths
- Optional list of glob patterns. If set, the step only runs when matching files are in the commit.
- timeout
- Optional Go duration string (default: 5m). Fails the step with exit code 1.
- env
- Optional map of NAME: value pairs. Secrets never go here — use gridtrue secret instead.