• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stacklok / toolhive / 26630616958
66%

Build:
DEFAULT BRANCH: main
Ran 29 May 2026 09:58AM UTC
Jobs 1
Files 739
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 May 2026 09:52AM UTC coverage: 65.989% (-0.006%) from 65.995%
26630616958

push

github

web-flow
Opt 12 v1beta1 CRDs into storage-version migration + CI guard (#5391)

* Label v1beta1 CRDs for auto storage version migration

Adds the kubebuilder marker

    +kubebuilder:metadata:labels=toolhive.stacklok.dev/auto-migrate-storage-version=true

to every v1beta1 root type and regenerates the CRD manifests. The label
is the opt-in signal for an upcoming StorageVersionMigrator controller
that will reconcile each CRD's status.storedVersions down to the current
storage version. List types are intentionally not labelled — the label
applies to the CRD itself, which is keyed on the root type.

Part of #4969.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Add CI test enforcing migrate-label coverage on v1beta1 root types

Guards against the main footgun of the opt-in-label design for
storage-version migration: if a new CRD root type is added to
cmd/thv-operator/api/v1beta1/ without the migrate-marker, the
StorageVersionMigrator controller silently excludes it. The problem
surfaces only when a future release tries to drop a deprecated version
— at which point it is far too late to fix.

The test scans every root type (marker block contains both
+kubebuilder:object:root=true and +kubebuilder:storageversion) and
fails unless the block also contains either the migrate marker or an
explicit +thv:storage-version-migrator:exclude sibling marker.

Part of #4969.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Scan all api/v* directories, label MCPWebhookConfig

The marker-coverage test was only scanning cmd/thv-operator/api/v1beta1/
and filtering for files matching *_types.go. This had two gaps:

1. Future graduations (v1beta1 → v1beta2) would silently break the test:
   when +kubebuilder:storageversion moves to v1beta2/, the v1beta1 root
   types lose the storage marker and become invisible to the scanner.
   The test would either pass vacuously (other version dirs unscanned)
   or hard-fail on the "no roots found"... (continued)

65713 of 99582 relevant lines covered (65.99%)

63.22 hits per line

Coverage Regressions

Lines Coverage ∆ File
9
22.99
-5.17% pkg/client/manager.go
6
76.15
-5.5% pkg/secrets/keyring/keyctl_linux.go
3
70.0
-3.33% pkg/state/local.go
Jobs
ID Job ID Ran Files Coverage
1 26630616958.1 29 May 2026 09:58AM UTC 739
65.99
GitHub Action Run
Source Files on build 26630616958
  • Tree
  • List 739
  • Changed 20
  • Source Changed 13
  • Coverage Changed 20
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26630616958
  • 0578af61 on github
  • Prev Build on main (#26627835854)
  • Next Build on main (#26633325315)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc