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

stacklok / toolhive / 25518577229
65%

Build:
DEFAULT BRANCH: main
Ran 07 May 2026 07:58PM UTC
Jobs 1
Files 720
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

07 May 2026 07:52PM UTC coverage: 64.842% (+0.03%) from 64.809%
25518577229

push

github

web-flow
Use shared pkg/oauthproto helpers in tokenexchange (#5212)

Switch tokenexchange to the shared grant-helper primitives landed
earlier:

- HTTP client: delete the local defaultHTTPClient var and
  defaultHTTPTimeout const; route the nil-client fallback through
  oauthproto.DefaultHTTPClient(). Every grant now picks up the same
  process-wide transport and connection pool.

- Redaction: delete the local redactedPlaceholder and emptyPlaceholder
  constants; the three String() methods (exchangeRequest, response,
  clientAuthentication) now call oauthproto.Redact(value), which
  replaces four hand-rolled "if empty/else redacted" branches with
  one expression each.

- Pre-existing annotation cleanup: four //nolint:gosec // G117
  directives on sensitive struct-tag fields (AccessToken,
  RefreshToken, ClientSecret x2) were suppressing a rule gosec does
  not actually flag. Delete them per the go-style.md rule against
  //nolint directives that do not suppress a confirmed false
  positive. middleware.go had one //nolint:gosec // G706 in the same
  state; same treatment.

- Test hygiene: convert every defer server.Close() in
  exchange_test.go (22 sites) to t.Cleanup(server.Close). Every
  affected site runs t.Parallel either directly or via subtests;
  .claude/rules/testing.md calls out defer as a foot-gun there
  because the parent test function can return before parallel
  subtests finish, closing the server prematurely.

maxResponseBodySize stays local with a TODO referencing the
follow-up that replaces executeTokenExchangeRequest with
oauthproto.DoTokenRequest, at which point the local constant
disappears. createTokenExchangeRequest, executeTokenExchangeRequest,
parseTokenExchangeResponse are untouched in this commit for the
same reason: isolating the HTTP-client swap from the request-plumbing
rewrite makes a future bisect point at one concern at a time.

7 of 12 new or added lines in 1 file covered. (58.33%)

24 existing lines in 8 files now uncovered.

63367 of 97725 relevant lines covered (64.84%)

59.32 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
88.48
5.5% pkg/auth/tokenexchange/exchange.go

Coverage Regressions

Lines Coverage ∆ File
6
76.15
-5.5% pkg/secrets/keyring/keyctl_linux.go
5
80.15
-0.52% pkg/transport/proxy/httpsse/http_proxy.go
3
88.48
5.5% pkg/auth/tokenexchange/exchange.go
2
96.53
0.0% pkg/authserver/storage/memory.go
2
93.94
-6.06% pkg/foreach/foreach.go
2
57.89
-3.51% pkg/transport/session/sse_session.go
2
82.29
-0.21% pkg/vmcp/composer/workflow_engine.go
2
51.22
-0.19% pkg/workloads/manager.go
Jobs
ID Job ID Ran Files Coverage
1 25518577229.1 07 May 2026 07:58PM UTC 720
64.84
GitHub Action Run
Source Files on build 25518577229
  • Tree
  • List 720
  • Changed 14
  • Source Changed 2
  • Coverage Changed 14
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25518577229
  • 8d9eb28e on github
  • Prev Build on main (#25511991371)
  • Next Build on main (#25552139856)
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