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

stacklok / toolhive / 31693123182
70%

Build:
DEFAULT BRANCH: main
Ran 13 Aug 2026 11:00AM UTC
Jobs 1
Files 875
Run time 2min
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

13 Aug 2026 10:53AM UTC coverage: 70.262% (-0.003%) from 70.265%
31693123182

push

github

web-flow
Sign pushes by default and remove the lock feature gate (#6139)

* Sign pushes by default and remove the lock feature gate

The final RFC THV-0080 piece: thv skill push signs the pushed artifact
with the provided cosign key (attaching the signature manifest next to
it, so installs can verify), and pushing unsigned requires an explicit
--no-sign — a failed signing fails the push rather than silently
publishing unsigned.

With signing on publish and verification on consume both in place, the
TOOLHIVE_SKILLS_LOCK_ENABLED gate comes out: the lock file, sync,
upgrade, dependency materialization, and signature verification are
now standard behavior for project-scoped skills. The architecture
document's trust-model section graduates from the drift-detection
honesty note to the verified model — TOFU semantics, the explicit
allow_unsigned / allow_signer_change escape hatches, the provisional
git marker, and what deliberately remains trusted on faith.

Closes #5899.

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

* Push E2E artifacts with an explicit no-sign

Signed-by-default pushes turned every E2E push into a 400: the suite
has no signing infrastructure, so its pushes carry the explicit
no_sign decision — matching the allow_unsigned exceptions its
project-scoped installs already record.

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

* Accept the key format cosign generate-key-pair writes

thv skill push --key could not read any key produced by the cosign CLI.
It failed with an opaque ASN.1 error, and no test caught it: the fixtures
built keys with cryptoutils, which writes PKCS#8 standard encryption
under the same "ENCRYPTED SIGSTORE PRIVATE KEY" label that cosign uses
for a payload sealed with scrypt and nacl/secretbox. Same label,
different bytes.

Decrypt the cosign sealing when the label says so, falling back to the
PKCS#8 form, and report a wrong password as such rather than as a parse
failure.

Also document where COSIGN_PASSWORD is ... (continued)

135 of 166 new or added lines in 13 files covered. (81.33%)

26 existing lines in 7 files now uncovered.

84578 of 120376 relevant lines covered (70.26%)

99.11 hits per line

Uncovered Changes

Lines Coverage ∆ File
23
76.87
-7.01% pkg/skills/signer/cosign_attach.go
5
77.45
0.53% pkg/skills/signer/key.go
2
42.86
19.78% cmd/thv/app/skill_push.go
1
92.9
0.21% pkg/skills/skillsvc/build.go

Coverage Regressions

Lines Coverage ∆ File
7
61.48
-0.6% pkg/workloads/manager.go
6
20.11
-3.45% pkg/client/manager.go
6
73.79
-5.83% pkg/state/local.go
3
96.63
-0.44% pkg/authz/authorizers/cedar/core.go
2
71.43
-2.86% pkg/state/runconfig.go
1
76.87
-7.01% pkg/skills/signer/cosign_attach.go
1
80.21
1.07% pkg/vmcp/cli/embedding_manager.go
Jobs
ID Job ID Ran Files Coverage
1 31693123182.1 13 Aug 2026 11:00AM UTC 875
70.26
GitHub Action Run
Source Files on build 31693123182
  • Tree
  • List 875
  • Changed 26
  • Source Changed 18
  • Coverage Changed 21
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #31693123182
  • 78541159 on github
  • Prev Build on main (#31692859738)
  • Next Build on main (#31706784393)
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