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

stacklok / toolhive / 19424386682
51%

Build:
DEFAULT BRANCH: main
Ran 17 Nov 2025 09:18AM UTC
Jobs 1
Files 377
Run time 586min
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

17 Nov 2025 09:16AM UTC coverage: 49.19% (+0.02%) from 49.173%
19424386682

push

github

web-flow
Fix RFC 7591 scope serialization format (#2597)

* Fix RFC 7591 scope serialization format

Dynamic client registration was sending scopes as a JSON array
instead of a space-delimited string, violating RFC 7591 Section 2.

Changes:
- Add RequestScopeList type with custom MarshalJSON method
- Convert scope arrays to space-delimited strings per RFC 7591
- Update DynamicClientRegistrationRequest to use RequestScopeList
- Update tests to verify RFC 7591 compliance
- Remove TODO comments about the format violation

The ScopeList type for responses already handles both formats
(string and array) for maximum provider compatibility.

Fixes #2596

Signed-off-by: Claude <noreply@anthropic.com>

* Add INFO logging to demonstrate RFC 7591 scope marshaling

Adds informative logging to show the transformation of RequestScopeList
from Go slice to RFC 7591 compliant space-delimited string format.

Tested successfully against Atlassian MCP OAuth server:
- Input: [openid profile email]
- Output: "openid profile email" (space-delimited string)
- Result: Successful dynamic client registration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Change RFC 7591 scope marshaling logging to DEBUG level

The INFO level logging was useful for validating RFC 7591 compliance
during testing, but DEBUG is more appropriate for production use.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Simplify RequestScopeList.MarshalJSON by removing unnecessary null check

The previous implementation returned null for empty slices to work with
omitempty, but testing revealed that omitempty checks the Go value (empty
slice) BEFORE calling MarshalJSON. This means:

1. Empty/nil slices are omitted by omitempty at the struct level
2. MarshalJSON is never called for empty slices
3. The null return was dead code

Simplified implementation:
- Removed unnecessary empty sli... (continued)

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

24228 of 49254 relevant lines covered (49.19%)

60.63 hits per line

Jobs
ID Job ID Ran Files Coverage
1 19424386682.1 17 Nov 2025 09:18AM UTC 377
49.19
GitHub Action Run
Source Files on build 19424386682
  • Tree
  • List 377
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #19424386682
  • 2412e82a on github
  • Prev Build on main (#19423625974)
  • Next Build on main (#19427124423)
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

© 2025 Coveralls, Inc