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

umputun / reproxy / 41177170951
81%

Build:
DEFAULT BRANCH: master
Ran 31 Oct 2026 06:37AM UTC
Jobs 1
Files 20
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

31 Oct 2026 06:34AM UTC coverage: 80.912% (-0.2%) from 81.121%
41177170951

push

github

web-flow
fix: reject path spellings that skip route policies, bump go 1.27 (#269)

* chore: add revmux review profile

the profile tells revmux reviewers what reproxy is, which failures matter
(wrong routing, request-path security, response corruption) and which
conventions are deliberate, so local reviews use reproxy's bar instead of a
generic one.

* fix: reject dot and empty path segments before route matching

route matching preserved dot segments and repeated slashes, while an upstream
may normalize them. With a protected ^/api/private/ route next to
a public ^/api/ one, /api/public/../private/x, its %2e%2e%2f form,
/api//private/x and /api/%2fprivate/x all matched the public route and
returned the protected resource without credentials. Now matchHandler answers
400 for a decoded path with a dot, double-dot or empty segment, a single
trailing slash excepted.

* chore: bump go to 1.27 and update all dependencies

go.mod, the CI workflows and both Dockerfiles move to Go 1.27, and module
dependencies are updated in both the main module and the plugin example.
golang.org/x/crypto goes from v0.51.0 to v0.58.0 to address the reported
Dependabot advisories; those were all in x/crypto/ssh, which reproxy does not
vendor. Two literals are rewritten for the Go 1.27 modernize check.

* ci: update actions and move goreleaser to v2

actions/checkout and actions/setup-go go to v7, and the golangci-lint pin to
v2.15.0. The release workflow runs goreleaser v2, so .goreleaser.yml gets
version 2 and the formats list for the Windows archive. The Homebrew formula
stays on brews, which v2 still supports as deprecated.

* fix: reject path-parameter and backslash dot segments

servlet-style upstreams strip ;params from a segment and some treat a backslash as a slash, so /api/public/..;/private/x, /api/;/private/x and /api/public/..%5cprivate/x passed the segment check and still reached a resource behind another route. The check now splits on backslashes too and judges each segme... (continued)

21 of 21 new or added lines in 2 files covered. (100.0%)

1 existing line in 1 file now uncovered.

2607 of 3222 relevant lines covered (80.91%)

70.07 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
84.86
-1.36% app/main.go
Jobs
ID Job ID Ran Files Coverage
1 41177170951.1 31 Oct 2026 06:37AM UTC 20
80.91
GitHub Action Run
Source Files on build 41177170951
  • Tree
  • List 20
  • Changed 20
  • Source Changed 0
  • Coverage Changed 20
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • b4eca599 on github
  • Prev Build on master (#41173744998)
  • Next Build on master (#41180050222)
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