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

stacklok / toolhive / 25449151925
65%

Build:
DEFAULT BRANCH: main
Ran 06 May 2026 05:01PM UTC
Jobs 1
Files 717
Run time 3min
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

06 May 2026 04:55PM UTC coverage: 64.764% (+0.02%) from 64.749%
25449151925

push

github

web-flow
Install local skill builds by name when tag differs (#5182)

* Extract local-build install opts hydration helper

Pull the LayerData/Digest/Reference/Version assignment block out of resolveFromLocalStore into a small hydrateOptsFromLocalBuild helper so a follow-up can share it between the existing direct-tag path and a new local-build name-scan path. No behavior change.

* Resolve local skill builds by name when tag differs

A local skill build tagged with something other than its declared skill name (e.g. thv skill build --tag v0.0.1) was not findable via POST /api/v1beta/skills with a plain name + version body: install-by-name did a literal tag lookup against the local OCI store, so the only resolvable handle was the OCI tag string. Callers got 404 "not found in local store or registry" even though the build was visible in GET /skills/builds.

Extend resolveFromLocalStore so that when the direct tag lookup misses, or when a caller-supplied version disagrees with the direct match, it walks the local-build-marked tags for one whose declared skill name matches. The version filter accepts either the artifact's cfg.Version or the local store tag, mirroring the OCI-name install path that already treats version as the tag and matching the GET /skills/builds output where many artifacts carry a tag like "v0.0.1" with an empty SKILL.md version. With multiple matches, prefer the build whose tag equals the skill name; otherwise return 409 Conflict listing each candidate's tag and version.

Add table-driven cases covering: scan resolves by skill name when tag differs, version matches the local store tag (the user-facing reproducer), version filter narrows multiple matches, version mismatch falls through to registry, direct version mismatch falls through to scan, ambiguous matches return 409, and non-skill local-build-marked tags are ignored. Tighten the test runner so wantErr is also asserted when wantCode is set.

77 of 93 new or added lines in 1 file covered. (82.8%)

11 existing lines in 3 files now uncovered.

63076 of 97393 relevant lines covered (64.76%)

59.73 hits per line

Uncovered Changes

Lines Coverage ∆ File
16
88.77
-6.18% pkg/skills/skillsvc/install_oci.go

Coverage Regressions

Lines Coverage ∆ File
6
76.15
-5.5% pkg/secrets/keyring/keyctl_linux.go
3
71.85
-1.11% pkg/ignore/processor.go
2
73.63
-0.64% pkg/runner/config.go
Jobs
ID Job ID Ran Files Coverage
1 25449151925.1 06 May 2026 05:01PM UTC 717
64.76
GitHub Action Run
Source Files on build 25449151925
  • Tree
  • List 717
  • Changed 8
  • Source Changed 1
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25449151925
  • 59e86a55 on github
  • Prev Build on main (#25441337713)
  • Next Build on main (#25463362294)
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