Development

Prerequisites

  • Go 1.25+
  • Docker
  • Helm 3

Build & test

make tidy
make lint
make govulncheck
make test
make build

CI also runs golangci-lint, govulncheck (SARIF → code scanning), and Trivy image scans (HIGH/CRITICAL, ignore unfixed) on every PR.

Documentation site

Docs are built with Rspress from this docs/ tree and published to GitHub Pages on pushes to main.

npm ci
npm run dev      # local preview
npm run build    # output in doc_build/

Run locally

export CLUSTER_NAME=dev
export ENVIRONMENT=staging
export GITHUB_APP_ID=123456
export GITHUB_INSTALLATION_ID=987654
export GITHUB_PRIVATE_KEY_PATH=./github-app.pem
export DATABASE=./cache.db
export KUBECONFIG=~/.kube/config

go run ./cmd/bridge

Integration tests

Integration tests under test/integration exercise the reporter lifecycle against fakes (SQLite cache, registry, GitHub API). They run with the rest of the suite:

go test ./test/integration -count=1

Container image

make docker-build IMG=ghcr.io/roberteggl/github-deployment-bridge VERSION=dev

Dependency updates

Renovate is configured via renovate.json. It opens chore(deps): PRs labeled dependencies, with automerge for safe non-major updates (Go modules, Actions, Docker digests).

Releasing

See releasing.md. Preview changelog with:

git cliff --unreleased