Contributing
August 2, 2026 ยท View on GitHub
Development setup
Install the Go version declared in go.mod. Optional development tools and tasks are defined in mise.toml.
Start with the OpenWiki quickstart and source map before changing admission behavior.
Checks
Run the default checks before opening a pull request:
test -z "$(gofmt -l .)"
go vet ./...
go test ./...
Docker-backed Notation tests are opt-in locally:
go test -tags=integration ./pkg/admissionctrl/notation
Add focused regression tests for behavior changes. Route or response-rewrite changes belong in cmd/nacp/nacp_test.go; ordering and controller-contract changes belong in pkg/admissionctrl/controller_test.go; adapter tests should remain next to their implementation.
Pull requests
- Keep changes focused and explain user-visible or operational impact.
- Preserve mutation order and ensure validators see the final mutated job.
- Document configuration and policy contract changes, including breaking changes in
CHANGELOG.md. - Update runnable examples when they are part of the changed contract.
- Never commit credentials, ACL tokens, private keys, trust-store secrets, or generated local artifacts.
OpenWiki pages under openwiki/ are generated. Prefer updating source code and maintained documentation, then allow the OpenWiki workflow to regenerate them.