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

stacklok / toolhive / 40708795032
73%

Build:
DEFAULT BRANCH: main
Ran 28 Oct 2026 02:53PM UTC
Jobs 1
Files 985
Run time 1min
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

28 Oct 2026 02:43PM UTC coverage: 71.984% (+0.05%) from 71.938%
40708795032

push

github

web-flow
Re-check upstream DCR registrations while running (#6948)

The embedded auth server resolves an upstream's DCR registration once, at
start. A registration the upstream drops afterwards stays in use until the
process restarts, so every sign-in in between fails at the upstream, and a
replica that started earlier keeps a registration a later replica replaced
(#6496).

dcrConfig.registrationProbeInterval (a duration of at least 1m, empty by
default) repeats the start-time resolution on that interval. Each tick
re-reads the stored row, checks it with the configured registrationProbe,
replaces a rejected registration, registers a missing one, and switches the
running upstream provider to the result when it names a different client,
including a row another replica replaced. Endpoints the run config left to
discovery follow the new registration, and a file-based initial access
token is re-read on every tick. The first tick waits a random part of the
interval and later ones the interval +-10%, so replicas of one rollout do
not probe and re-register together.

A provider holds its client config and, for OIDC, the ID token verifier as
one state behind an atomic pointer; a token request and the ID token check
that follows it use the state they loaded, so a swap during the request does
not fail it. A failed tick is logged and leaves the provider on its current
client; a switch is logged at Warn because authorizations started under the
previous client may fail their code exchange. Periodic ticks log the 90-day
staleness warning at Debug.

Signed-off-by: Aron Gates <aron@muonspace.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

235 of 262 new or added lines in 11 files covered. (89.69%)

2 existing lines in 2 files now uncovered.

90279 of 125416 relevant lines covered (71.98%)

129.71 hits per line

Uncovered Changes

Lines Coverage ∆ File
14
21.13
-5.19% pkg/authserver/upstream/mocks/mock_provider.go
8
85.26
-0.01% pkg/authserver/runner/embeddedauthserver.go
5
44.2
-0.08% cmd/thv-operator/api/v1beta1/zz_generated.deepcopy.go

Coverage Regressions

Lines Coverage ∆ File
1
85.26
-0.01% pkg/authserver/runner/embeddedauthserver.go
1
96.77
-3.23% pkg/foreach/foreach.go
Jobs
ID Job ID Ran Files Coverage
1 40708795032.1 28 Oct 2026 02:53PM UTC 985
71.98
GitHub Action Run
Source Files on build 40708795032
  • Tree
  • List 985
  • Changed 19
  • Source Changed 13
  • Coverage Changed 18
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #40708795032
  • 7ce28f23 on github
  • Prev Build on main (#40675144039)
  • Next Build on main (#40724487955)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc