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

stacklok / toolhive / 19892531401
59%

Build:
DEFAULT BRANCH: main
Ran 03 Dec 2025 11:44AM UTC
Jobs 1
Files 391
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

03 Dec 2025 11:38AM UTC coverage: 50.112% (+0.005%) from 50.107%
19892531401

push

github

web-flow
Fix VirtualMCPServer OIDC configuration by implementing OIDCConfigurable interface (#2821)

* Add mockgen directive for OIDC Resolver interface

Add go:generate directive to generate gomock mock for the oidc.Resolver
interface. This enables proper unit testing of components that depend on
OIDC resolution without requiring a real Kubernetes client.

* Add OIDCConfigurable interface implementation to VirtualMCPServer

Implement GetOIDCConfig() and GetProxyPort() methods on VirtualMCPServer
to satisfy the oidc.OIDCConfigurable interface. This allows the OIDC
resolver to resolve Kubernetes and ConfigMap OIDC configurations for
VirtualMCPServer resources.

GetProxyPort returns 4483, the default vMCP server port.

* Refactor Converter to require OIDC resolver for all OIDC types

Previously, the Converter only handled inline OIDC configuration directly
and had a TODO for kubernetes and configMap types. This change:

- Makes oidcResolver a required parameter for NewConverter (returns error
  if nil)
- Uses the resolver for all OIDC types (kubernetes, configMap, inline)
- Adds mapResolvedOIDCToVmcpConfig() to map resolver output to vmcp config
- Handles ClientSecretEnv for all OIDC types that may have client secrets
- Updates controller to pass OIDC resolver to converter
- Adds comprehensive tests using gomock for OIDC resolution
- Adds compile-time interface assertion for VirtualMCPServer

This ensures fail-closed behavior: if OIDC is configured but resolution
fails, the converter returns an error rather than silently deploying
without authentication.

64 of 145 new or added lines in 4 files covered. (44.14%)

14 existing lines in 1 file now uncovered.

26055 of 51994 relevant lines covered (50.11%)

60.29 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
2
79.25
-0.75% cmd/thv-operator/controllers/virtualmcpserver_vmcpconfig.go
4
58.33
15.15% cmd/thv-operator/pkg/vmcpconfig/converter.go
8
27.27
-72.73% cmd/thv-operator/api/v1alpha1/virtualmcpserver_types.go
67
0.0
cmd/thv-operator/pkg/oidc/mocks/mock_resolver.go

Uncovered Existing Lines

Lines Coverage ∆ File
14
54.74
-10.53% pkg/secrets/keyring/keyctl_linux.go
Jobs
ID Job ID Ran Files Coverage
1 19892531401.1 03 Dec 2025 11:44AM UTC 391
50.11
GitHub Action Run
Source Files on build 19892531401
  • Tree
  • List 391
  • Changed 5
  • Source Changed 4
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #19892531401
  • 62f41220 on github
  • Prev Build on main (#19891521356)
  • Next Build on main (#19892842524)
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