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

stacklok / toolhive / 24301757176
66%

Build:
DEFAULT BRANCH: main
Ran 12 Apr 2026 07:52AM UTC
Jobs 1
Files 617
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

12 Apr 2026 07:46AM UTC coverage: 65.539% (-0.006%) from 65.545%
24301757176

push

github

web-flow
Add v0.1 skills API endpoints (#4753)

* Add v0.1 skills API endpoints

Add upstream-compatible skills endpoints to unblock Desktop/FE team:
- GET /registry/{name}/v0.1/skills (paginated, searchable)
- GET /registry/{name}/v0.1/skills/{namespace}/{skillName}

Uses the existing Provider.ListAvailableSkills() and GetSkill()
methods. The {registryName} path param is accepted but currently
hardcoded to use the default provider — multi-registry routing
will be added in a follow-up refactor.

Ref: #4199

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix skills endpoint path to match registry server

Move skills endpoints under the x/dev.toolhive extension namespace
to match the registry server's route structure:
  /registry/{name}/v0.1/x/dev.toolhive/skills

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix review findings in skills v0.1 handler

Address three issues found during code review:

- Use GetDefaultProviderWithConfig with WithInteractive(false) to
  prevent browser-based OAuth flows from HTTP handlers and avoid
  poisoning the singleton provider cache with interactive mode
- Map upstream 404 responses from RegistryHTTPError to HTTP 404
  instead of returning a generic 500 for non-existent skills
- Initialize filter result as empty slice (not nil) so JSON encodes
  as [] instead of null when no skills match the search query

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Use structured JSON error responses and improve error handling

- Rename getProvider() to getSkillsProvider() and match the error
  handling pattern from existing registry handlers: structured JSON
  errors for auth-required, unavailable, and internal errors
- Add writeJSONError helper for consistent JSON error responses
  (was returning text/plain via http.Error)
- Map upstream 401/403 to auth-required error (not just 404)
- Add tests for case-insensitive search, empty filter result encoding,
  paginatio... (continued)

82 of 127 new or added lines in 2 files covered. (64.57%)

33 existing lines in 3 files now uncovered.

56506 of 86217 relevant lines covered (65.54%)

62.72 hits per line

Uncovered Changes

Lines Coverage ∆ File
44
65.08
pkg/api/v1/registry_v01_skills.go
1
12.71
-0.02% pkg/api/server.go

Coverage Regressions

Lines Coverage ∆ File
14
74.44
-5.19% pkg/client/config.go
11
68.83
-14.29% pkg/client/discovery.go
8
23.56
-4.6% pkg/client/manager.go
Jobs
ID Job ID Ran Files Coverage
1 24301757176.1 12 Apr 2026 07:52AM UTC 617
65.54
GitHub Action Run
Source Files on build 24301757176
  • Tree
  • List 617
  • Changed 8
  • Source Changed 1
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24301757176
  • 31767a26 on github
  • Prev Build on main (#24294392793)
  • Next Build on main (#24303096167)
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