Skip to content

test: Ginkgo/synctest suites, CI hardening, branding site, CVE fixes - #2

Merged
Fraser-Isbester merged 4 commits into
mainfrom
test-and-branding
Jul 8, 2026
Merged

Fraser-Isbester merged 4 commits into
mainfrom
test-and-branding

Conversation

@Fraser-Isbester

Copy link
Copy Markdown
Owner

What

  • Tests: Ginkgo/Gomega suites for config, rules, cloudsql, daemon (67 specs) plus a testing/synctest fake-clock test that exercises daemon.autoscalingLoop across multiple intervals in ~zero real time. Bumps Go to 1.26.
  • CI / linting: ports .golangci.yml to golangci-lint v2, adds govulncheck and go mod tidy jobs, adds make vuln.
  • Branding: single-page site/ (GCP blue/green terminal theme) + GitHub Pages deploy workflow, linked from the README.
  • Security: patches all known CVEs — grpc 1.73→1.82 (critical), otel 1.36→1.44 (high), Go toolchain →1.26.5 for the reachable crypto/tls advisory; x/net & x/crypto already patched.

Why

The repo had zero tests despite programmatically resizing production databases, CI lint config that would fail on golangci v2, no source-level vuln scanning, and no project landing page. This closes all four gaps.

Validation

  • go build ./..., go vet ./..., all 68 tests green locally.
  • govulncheck ./... → 0 reachable vulnerabilities.
  • All four workflow/lint YAML files parse.

🤖 Generated with Claude Code

Fraser-Isbester and others added 4 commits July 8, 2026 11:16
Adds test coverage, hardens CI, and introduces a branding site.

Tests (Ginkgo/Gomega + testing/synctest):
- Suites for config, rules, cloudsql, and daemon (67 specs).
- daemon.autoscalingLoop covered by a testing/synctest fake-clock test
  that simulates multiple intervals in zero real time.
- Bump go.mod to 1.26 (required for the stable synctest clock).

CI / linting:
- Port .golangci.yml to golangci-lint v2 format.
- Add govulncheck and go-mod-tidy jobs to ci.yaml; bump Go to 1.26.
- Add `make vuln`; wire into `make check`.

Branding:
- Single-page site/ (GCP blue/green terminal theme) + GitHub Pages
  deploy workflow. Link the site from the README.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolves the Dependabot alerts and the govulncheck-reachable stdlib
finding:
- google.golang.org/grpc 1.73.0 -> 1.82.0 (GHSA-p77j-4mvh-x3m3, critical)
- go.opentelemetry.io/otel 1.36.0 -> 1.44.0 (GHSA-mh2q-q3fh-2475, high)
- Go toolchain -> 1.26.5 for crypto/tls GO-2026-5856 (reachable via the
  daemon HTTPS server and Cloud SQL client)
- x/net (0.56.0) and x/crypto (0.53.0) already exceed the patched
  versions from earlier test-dep upgrades.

govulncheck now reports 0 reachable vulnerabilities. The one remaining
module-level advisory (GO-2026-5932, x/crypto/openpgp unmaintained) has
no fix available and is not imported by this code.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The old golangci config was v1-format and never loaded under the v2
binary, so these pre-existing issues were never caught:
- check json.Encoder.Encode / analyzer.Close return values (errcheck)
- use metadata.ProjectIDWithContext instead of the deprecated
  metadata.ProjectID (staticcheck SA1019)
- drop the no-op max_connections flag loop (staticcheck SA9003)
- remove the unused ctx param from runDaemon (unparam)
- drop the constant-valued param from a test helper (unparam)

golangci-lint run ./... now reports 0 issues.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Docker Build Test job never ran before (it needs test+lint, and lint
was failing), which hid two issues:
- the image tag used ${{ github.repository }} ("Fraser-Isbester/...") ->
  "repository name must be lowercase". Use the lowercase image path.
- the builder image was golang:1.24.4-alpine, incompatible with the
  go 1.26.5 directive. Bump to golang:1.26.5-alpine.

Verified with a local docker build.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Fraser-Isbester
Fraser-Isbester merged commit b412af1 into main Jul 8, 2026
6 checks passed
@Fraser-Isbester
Fraser-Isbester deleted the test-and-branding branch July 8, 2026 19:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant