Testing, Linting, and Code Generation

Testing

dev test                                  # Runs go test ./...
dev test -v ./internal/controller/...     # Verbose tests for the controller package
dev test -short ./...                     # Skips integration and chromedp tests (no Orbstack or browser required)

dev test forwards all arguments to go test.

Linting and formatting

dev lint    # Runs kube-lint, lint-docs, and golangci-lint
dev fmt     # Attempts to fix linting errors

All Go files must be formatted with gofumpt (enforced by golangci-lint).

Code generation

Protocol Buffers

Core domain types are defined in internal/skipper/types.proto and the gRPC service is defined in internal/skipper/controller.proto. After modifying .proto files, regenerate the Go code:

buf generate

This uses Buf with the configuration in buf.gen.yaml to generate: