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

stacklok / toolhive / 28198129566
67%

Build:
DEFAULT BRANCH: main
Ran 25 Jun 2026 08:28PM UTC
Jobs 1
Files 760
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

25 Jun 2026 08:22PM UTC coverage: 67.342% (-0.07%) from 67.41%
28198129566

push

github

web-flow
Add vMCP OBO strategy seam (OBOConfig field + stub + override hook) (#5624)

* Add vMCP OBO strategy seam (OBOConfig field + stub + override hook)

Implements changes for issue #5623:
- Add OBOConfig struct and OBO field to BackendAuthStrategy in
  pkg/vmcp/auth/types, giving the enterprise OBO converter a typed
  carrier for token URL, clientID, audience, scopes, client-secret,
  subject-provider-name, and cache-skew-seconds
- Update zz_generated.deepcopy.go for the new OBOConfig type
- Add oboStrategyStub + RegisterOBOStrategy hook in pkg/vmcp/auth,
  mirroring the obo.RegisterFactory and controllerutil.RegisterOBOHandler
  patterns; default stub returns obo.ErrEnterpriseRequired from every
  method — consistent with the other three dispatch points
- Register the OBO strategy in factory.NewOutgoingAuthRegistry so
  GetStrategy("obo") resolves with a uniform ErrEnterpriseRequired
  result instead of a generic not-found error
- Regenerate CRD API reference docs for the new OBOConfig type

* Wire OBO into vmcp config validator and yaml_loader

Addresses stacklok/toolhive#5624 review comments:
- HIGH pkg/vmcp/config/validator.go (F1): Add StrategyTypeOBO to the
  validTypes slice and a case branch that nil-guards OBO config and
  requires tokenUrl, matching the pattern of the other strategy types
- MEDIUM pkg/vmcp/config/yaml_loader.go (F4): Add a StrategyTypeOBO
  case to processBackendAuthStrategy that resolves ClientSecretEnv ->
  ClientSecret at load time, mirroring the token_exchange case

* Fix test issues flagged in PR review

Addresses stacklok/toolhive#5624 review comments:
- MEDIUM obo_test.go (F14): Remove t.Parallel() from
  TestNewOBOStrategy_DefaultReturnsStub; it reads shared
  currentOBOStrategyFactory and must not race serial tests that mutate it
- MEDIUM factory/outgoing_test.go (F11): Add Authenticate call to the OBO
  sub-test so the hot path is also verified to return ErrEnterpriseRequired
- LOW obo_test.go (F12): Use req.Context() ... (continued)

44 of 77 new or added lines in 5 files covered. (57.14%)

76 existing lines in 6 files now uncovered.

69514 of 103225 relevant lines covered (67.34%)

65.02 hits per line

Uncovered Changes

Lines Coverage ∆ File
14
77.85
-8.07% pkg/vmcp/config/yaml_loader.go
10
74.77
-1.67% pkg/vmcp/config/validator.go
7
14.05
14.05% pkg/vmcp/auth/types/zz_generated.deepcopy.go
2
70.73
-0.7% pkg/vmcp/auth/factory/outgoing.go

Coverage Regressions

Lines Coverage ∆ File
59
62.64
-4.57% pkg/workloads/manager.go
6
76.15
-5.5% pkg/secrets/keyring/keyctl_linux.go
5
0.0
-100.0% pkg/workloads/sysproc_unix.go
3
71.85
-1.11% pkg/ignore/processor.go
2
96.48
0.0% pkg/authserver/storage/memory.go
1
77.85
-8.07% pkg/vmcp/config/yaml_loader.go
Jobs
ID Job ID Ran Files Coverage
1 28198129566.1 25 Jun 2026 08:28PM UTC 760
67.34
GitHub Action Run
Source Files on build 28198129566
  • Tree
  • List 760
  • Changed 11
  • Source Changed 4
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28198129566
  • 5310b0cf on github
  • Prev Build on main (#28197356005)
  • Next Build on main (#28199137428)
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