• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In
Warning: This build has drifted.
The coverage report for this pull request build may be inaccurate because its base commit is no longer the HEAD of its target branch.
This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

    • Learn more: For more information on this, see Tracking coverage changes for pull request builds.
    • Fix now: For a quick fix, rebase this PR at GitHub. Your next report should be accurate.
    • Prevent going forward: To avoid this issue with future PRs, see these Recommended CI Configurations.
New Repo Setting:
INCLUDE COVERAGE % WITH WARNINGS ABOUT DRIFTED BUILDS?

Enabling this setting will include a (potentially inaccurate) coverage % with warning messages in status updates for drifted builds.

Adjust setting

dunglas / mercure / 28740305988
83%
master: 93%

Build:
Build:
LAST BUILD BRANCH: dependabot/github_actions/goreleaser/goreleaser-action-7.2.3
DEFAULT BRANCH: master
Ran 05 Jul 2026 12:12PM UTC
Jobs 1
Files 33
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

04 Jul 2026 08:13PM UTC coverage: 83.099% (-1.1%) from 84.18%
28740305988

Pull #1269

github

dunglas
fix(matchers)!: address topic-matcher spec-review findings

Remediates the verified findings from the spec-conformance review of the
topic-matcher work:

- Authorization error codes: a valid token that does not grant the action on
  the requested topic now yields 403 insufficient_scope (with a bare Bearer
  challenge) instead of 401, on the publish and subscription-API paths; 401
  stays for a missing or invalid token. JWT matcher-claim defects (unknown
  matcher type, invalid pattern, control characters) are now classified as
  invalid_token (401), never invalid_request (400), since they are defects of
  the presented token.
- Match cache poisoning: publish topics are validated (control characters,
  invalid UTF-8) before they can reach the shared match cache via canDispatch,
  so a topic containing a NUL can no longer collide with a legitimate
  multi-topic cache key.
- Information disclosure: an uncompilable URL Pattern in a subscribe query
  parameter no longer echoes the go-urlpattern error (which can embed a live
  heap pointer) to the client; a generic message is returned and the detail is
  logged.
- Subscription API authorization is performed against the absolute path
  (r.URL.EscapedPath()) rather than the full RequestURI, so a token presented
  via the query parameter no longer breaks byte-for-byte Exact matching.
- Matcher objects in JWT claims lacking the required "match" property (or JSON
  null) invalidate the token instead of being silently accepted as an
  empty-pattern matcher.
- Base URL immutability: TopicSelectorStore rejects a conflicting base URL when
  shared across hubs with different public URLs, and scopes its match and
  compiled-pattern caches by base, so a shared store can no longer serve a
  result computed under the wrong base.
- Subscribe-time payload resolution short-circuits when no subscribe claim
  carries a per-matcher payload, avoiding up to matchers×claims URL Pattern
  evaluations per request.

Also exports the... (continued)
Pull Request #1269: feat!: Exact and URLPattern topic matchers

614 of 725 new or added lines in 22 files covered. (84.69%)

14 existing lines in 5 files now uncovered.

2306 of 2775 relevant lines covered (83.1%)

86.83 hits per line

Uncovered Changes

Lines Coverage ∆ File
31
69.31
matcherclaim.go
22
71.81
-5.97% subscription.go
16
42.86
handler_deprecated_topic.go
9
82.94
-5.63% publish.go
6
94.41
-4.3% subscriber.go
5
92.75
subscribematchers.go
5
88.89
-3.7% topicselector.go
4
83.73
-1.34% subscribe.go
4
90.91
-9.09% update.go
3
93.62
reservedtopic.go
2
94.44
-1.56% authorization.go
2
93.75
topicselector_deprecated.go
2
88.89
update_deprecated.go

Coverage Regressions

Lines Coverage ∆ File
4
82.94
-5.63% publish.go
3
83.73
-1.34% subscribe.go
3
88.89
-3.7% topicselector.go
2
94.41
-4.3% subscriber.go
2
71.81
-5.97% subscription.go
Jobs
ID Job ID Ran Files Coverage
1 0 - 28740305988.1 05 Jul 2026 12:12PM UTC 33
83.1
GitHub Action Run
Source Files on build 28740305988
  • Tree
  • List 33
  • Changed 11
  • Source Changed 0
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #1269
  • PR Base - main (#27288854155)
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