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

stacklok / toolhive / 21360303612
60%

Build:
DEFAULT BRANCH: main
Ran 26 Jan 2026 02:05PM UTC
Jobs 1
Files 471
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

26 Jan 2026 01:58PM UTC coverage: 60.075% (+0.03%) from 60.043%
21360303612

push

github

web-flow
Add header forward configuration and wire middleware in runner (#3427)

* Add HeaderForwardConfig types and builder options

Define the configuration model for header forwarding in RunConfig:
- HeaderForwardConfig with AddPlaintextHeaders and AddHeadersFromSecret
- Non-serialized resolvedHeaders field to hold merged values in memory
- ResolvedHeaders() accessor for middleware consumption
- HasHeaders() nil-safe method for checking configuration presence
- resolveHeaderForwardSecrets builds merged map without mutating
  AddPlaintextHeaders, keeping secret values out of serialized state
- WithHeaderForward and WithHeaderForwardSecrets builder options
  with additive semantics (multiple calls merge)

Plaintext values are stored as-is in RunConfig. Secret references are
stored by name and resolved at runtime into the non-serialized
resolvedHeaders field, ensuring actual values are never persisted.

* Move middleware creation after secret processing

Relocate PopulateMiddlewareConfigs, the middleware factory loop, and
the transportConfig assignments to after WithSecrets() runs. This
ensures that any secrets resolved during WithSecrets (such as header
forward secrets) are available when middleware factories are invoked.

No behavior change for existing code since no middlewares currently
depend on resolved secrets.

* Wire header forward middleware in runner

Register the header-forward middleware factory and integrate it into
the middleware pipeline:
- Add factory to GetSupportedMiddlewareFactories()
- addHeaderForwardMiddleware helper passes ResolvedHeaders() to the
  factory, which includes both plaintext and resolved secret values
- Place header-forward at the end of PopulateMiddlewareConfigs (just
  before recovery) so it executes innermost, closest to the backend
- In Runner.Run(), append header-forward after secret resolution for
  the pre-populated MiddlewareConfigs path (consistent ordering)
- Add NOTE in WithMiddlewareFromFlags explaining why head... (continued)

97 of 123 new or added lines in 4 files covered. (78.86%)

38114 of 63444 relevant lines covered (60.08%)

77.6 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
2
76.48
0.82% pkg/runner/config_builder.go
4
73.2
1.67% pkg/runner/config.go
4
74.68
0.22% pkg/runner/middleware.go
16
39.39
-0.41% pkg/runner/runner.go
Jobs
ID Job ID Ran Files Coverage
1 21360303612.1 26 Jan 2026 02:05PM UTC 471
60.08
GitHub Action Run
Source Files on build 21360303612
  • Tree
  • List 471
  • Changed 6
  • Source Changed 5
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #21360303612
  • 5c89f9c1 on github
  • Prev Build on main (#21359398441)
  • Next Build on main (#21362417977)
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