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

stacklok / toolhive / 39565128589
73%

Build:
DEFAULT BRANCH: main
Ran 21 Oct 2026 08:00AM UTC
Jobs 1
Files 966
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

21 Oct 2026 07:52AM UTC coverage: 71.455% (-0.02%) from 71.471%
39565128589

push

github

web-flow
Add auth server TLS listener and SPIFFE middleware (#6843)

SPIFFE X.509-SVID client authentication needs the client certificate
from a TLS handshake, but the MCP proxy port serves plain HTTP. Give
the embedded authorization server its own TLS listener on port 8443,
so the token endpoint can see client certificates without moving MCP
traffic to HTTPS.

The listener requests client certificates only when spiffe_x509 is
configured, sends the SPIFFE CAs as a hint, and reloads the serving
certificate when its files change, keeping the last good pair.
spiffeauth.Middleware extracts a claimed SPIFFE ID from the presented
peer certificate into the request context; it does not verify the
certificate. Malformed SPIFFE identities receive an OAuth JSON error.
Credential validation remains the responsibility of the client
authentication strategy.

EmbeddedAuthServer gains Start, and the proxy runner starts the
listener on the same host as the MCP port, rejecting a proxy or
diagnostics port that collides with it. Constructors reject configured
TLS listeners without a listener host so unsupported callers fail
explicitly. Graceful shutdown force-closes connections on timeout.

SPIFFE trust configuration remains rejected at startup; this change
does not yet enable SPIFFE client authentication.

Co-authored-by: Mecatl <noreply@mecatl.dev>

265 of 315 new or added lines in 6 files covered. (84.13%)

61 existing lines in 4 files now uncovered.

88365 of 123666 relevant lines covered (71.45%)

127.06 hits per line

Uncovered Changes

Lines Coverage ∆ File
20
86.39
pkg/authserver/runner/tls_listener.go
17
84.97
-0.85% pkg/authserver/runner/embeddedauthserver.go
11
53.77
0.09% pkg/runner/runner.go
2
93.94
pkg/authserver/spiffe/middleware.go

Coverage Regressions

Lines Coverage ∆ File
51
59.21
-4.99% pkg/workloads/manager.go
6
19.87
-3.97% pkg/client/manager.go
3
0.0
-100.0% pkg/workloads/sysproc_unix.go
1
81.07
-0.12% pkg/vmcp/composer/workflow_engine.go
Jobs
ID Job ID Ran Files Coverage
1 39565128589.1 21 Oct 2026 08:00AM UTC 966
71.45
GitHub Action Run
Source Files on build 39565128589
  • Tree
  • List 966
  • Changed 11
  • Source Changed 5
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39565128589
  • ad40e16a on github
  • Prev Build on main (#39510645130)
  • Next Build on main (#39595713888)
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