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

stacklok / toolhive / 33807055651
70%

Build:
DEFAULT BRANCH: main
Ran 03 Sep 2026 09:24PM UTC
Jobs 1
Files 906
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

03 Sep 2026 09:16PM UTC coverage: 69.974% (+0.05%) from 69.923%
33807055651

push

github

web-flow
Bound and drain hand-rolled HTTP transport pools (#6495)

* Bound and drain hand-rolled HTTP transport pools

#6480 bounded and drained only the clients built by
networking.HttpClientBuilder.Build. Several hand-rolled
&http.Transport{} literals elsewhere left IdleConnTimeout at zero, so a
pooled idle connection never expired and a dropped client pinned a
socket plus its goroutine pair for the process lifetime. Separately,
several wrapping RoundTrippers did not implement CloseIdleConnections,
so http.Client.CloseIdleConnections type-asserted the outermost
transport, missed the method, and silently became a no-op.

Implements changes for issue #6483:
- Bound the transport literals in pkg/auth/discovery, pkg/auth/oauth,
  and pkg/oauthproto (discovery, dcr) with the same host-scoped pool
  bounds Build applies
- Add networking.ForwardCloseIdle so a wrapping RoundTripper forwards
  CloseIdleConnections without an ad-hoc anonymous assertion; use it
  from ValidatingTransport and the vmcp wrappers
- Forward CloseIdleConnections from bearerTokenTransport,
  registry/auth.Transport, and oauthproto.UserAgentTransport (the last
  inline, since pkg/oauthproto cannot import pkg/networking)

pkg/authz/authorizers/http builds no wrapper and uses http.DefaultTransport
(or its Clone), which is already bounded and forwards the call, so it needs
no change.

* Centralize idle-pool bounds and cover them with tests

Addresses stacklok/toolhive#6495 review comments:
- MEDIUM pkg/oauthproto/dcr.go (3925404488): the 90s/100/4 pool values
  were duplicated across five transport literals with only a comment to
  keep them in sync. Add networking.SetIdleConnBounds as the single
  source (Build now uses it too); the three cycle-free sites call it, and
  the two oauthproto leaf sites reference a local const block since
  pkg/networking imports pkg/oauthproto.
- MEDIUM pkg/auth/discovery/discovery.go (3925404500): the two
  discovery.go transports and the oidc.go transport shipped... (continued)

63 of 67 new or added lines in 11 files covered. (94.03%)

13 existing lines in 3 files now uncovered.

77757 of 111123 relevant lines covered (69.97%)

92.34 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
90.86
-1.05% pkg/vmcp/session/internal/backend/mcp_session.go

Coverage Regressions

Lines Coverage ∆ File
6
85.45
0.0% pkg/authserver/server/tokenexchange/factory.go
5
61.43
-7.14% pkg/state/runconfig.go
2
63.89
4.47% pkg/workloads/manager.go
Jobs
ID Job ID Ran Files Coverage
1 33807055651.1 03 Sep 2026 09:24PM UTC 906
69.97
GitHub Action Run
Source Files on build 33807055651
  • Tree
  • List 906
  • Changed 17
  • Source Changed 12
  • Coverage Changed 17
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #33807055651
  • fd1e7b58 on github
  • Prev Build on main (#33774717838)
  • Next Build on main (#33897715598)
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