Repository navigation
fix(deps): update rust crate sigstore-verify to 0.14 - #14019
Conversation
Port mise-sigstore to the 0.14 API: TufBootstrap for mirrored TUF roots, VerificationPolicy::any_identity, skip_tlog_unsafe, the single-signature DSSE envelope, KeyAlgorithm key detection and the PublicKeyVerificationPolicy argument to verify_with_key. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Entire-Checkpoint: 01M48WGWJN8YDQFBGX1NJRWDE9
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
⛔ Files ignored due to path filters (1)
📒 Files selected for processing (8)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 2 remain after this review. 📝 WalkthroughWalkthroughThe Sigstore verification dependency and related API calls are updated. Bundle verification policies change, DSSE payload consumers use envelope bytes directly, and custom TUF configurations use the public-good instance root. ChangesSigstore verification
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Other Merge Risk: ⚪ Minimal · up to No actionable merge-blocking risk is established; the update is mergeable after normal checks. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 12 functions across 7 files. (1 skipped: 1 unsupported.)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Instruction counts
No instruction-count regression above 1%. Only instruction counts gate. Wall clock is shown for context — on identical hardware it moves 4-20% run to run. Measured by tak — instruction-counted CLI benchmarks, stored in this repository's git notes.
|
<!-- entire-trail-link-start --> https://entire.io/gh/jdx/mise/trails/430 <!-- entire-trail-link-end --> ### 🚀 Features - **(bootstrap)** add a tool-update service that keeps auto_update tools current by @jdx in [#14040](#14040) - **(config)** add global section write targets by @jdx in [#14018](#14018) - **(config)** move mise's auto-update settings under self_update.* by @jdx in [#14038](#14038) - **(dotfiles)** report notification availability and add notify command by @jdx in [#14009](#14009) - **(dotfiles)** add merge entries that own only some keys of a config file by @jdx in [#14012](#14012) - **(http)** add headers option for bearer and API-key auth by @jdx in [#14022](#14022) - **(install)** add an opt-in identity-based install layout by @jdx in [#13951](#13951) - **(install)** keep identity-layout installations in a shorter directory on Windows by @jdx in [#13952](#13952) - **(installs)** list installations and choose the one requests without a lockfile use by @jdx in [#13953](#13953) - **(installs)** move legacy installations into the identity layout by @jdx in [#13955](#13955) - **(lock)** preserve shared lockfile entries on request by @jdx in [#13980](#13980) - **(npm)** install packages from git repositories by @jdx in [#14044](#14044) - **(prune)** add prune.exclude to keep chosen tools from being pruned by @jdx in [#14030](#14030) - **(secrets)** add [secrets.fnox] project config and mise secrets ls by @jdx in [#13967](#13967) - **(secrets)** add --secrets and --secrets-all to mise run and mise x by @jdx in [#13975](#13975) - **(task)** give tasks only the fnox secrets they list by @jdx in [#13974](#13974) - **(task)** allow {{ secrets.X }} in task env values by @jdx in [#13978](#13978) - **(upgrade)** update global tools before they run with auto_update by @jdx in [#14026](#14026) - **(util)** add a comment-preserving YAML merge helper by @jdx in [#14010](#14010) - **(util)** add format-aware merge for JSON, TOML, and YAML files by @jdx in [#14011](#14011) ### 🐛 Bug Fixes - **(backend)** read a repository's packslip release list once per command by @jdx in [#13991](#13991) - **(backend)** only warn about a backend switch when the backend kind changes by @jdx in [#14032](#14032) - **(bootstrap)** don't create history state or fail on its lock unless writing files by @jdx in [#14029](#14029) - **(cargo)** serialize rustup state across cargo install fallbacks by @jdx in [#14042](#14042) - **(config)** keep global config when a project ignore resolves onto it via symlink by @jdx in [#14006](#14006) - **(doctor)** only warn about backend mismatches the registry serves by @jdx in [#14005](#14005) - **(dotenv)** leave a value ending in escaped whitespace unquoted by @jdx in [#13956](#13956) - **(dotfiles)** explain missing sources in conflicting declaration errors by @himkt in [#13973](#13973) - **(dotfiles)** skip legacy link discovery for group entries by @jdx in [#14023](#14023) - **(dotnet)** disable lockfile url enforcement for dotnet tool backend by @james-newell-forge in [#13971](#13971) - **(env)** fully redact secrets when redaction values overlap by @jdx in [#13962](#13962) - **(github)** log partial attestation verification failures by @jdx in [#14035](#14035) - **(github)** warn when attestations are skipped because the Sigstore trust root is unreachable by @jdx in [#14036](#14036) - **(http)** fetch a cached GitHub release once when callers race by @jdx in [#13990](#13990) - **(http)** don't retry a 429 whose Retry-After outlasts the backoff by @jdx in [#14027](#14027) - **(http)** retry downloads when an HTTP/2 stream reset fails the body read by @jdx in [#14049](#14049) - **(install)** switch backends into a new installation, and resolve CLI-named versions without guessing by @jdx in [#13957](#13957) - **(install)** keep a version incomplete until its postinstall hook succeeds by @jdx in [#14037](#14037) - **(install)** keep incomplete-install markers out of the cache by @jdx in [#14051](#14051) - **(mcp)** reject run_task task names that start with a dash by @jdx in [#13961](#13961) - **(oci)** stream large blob uploads in one PATCH by @jdx in [#14017](#14017) - **(outdated)** don't bump vendor-only requests like java@temurin by @jdx in [#14031](#14031) - **(prune)** keep versions that a running process was started from by @jdx in [#14020](#14020) - **(prune)** snapshot what templated tool versions render to in the identity layout by @jdx in [#14025](#14025) - **(pypi)** build uv tool venvs on mise's python by @jdx in [#14024](#14024) - **(pypi)** lock from <root>/simple/ for JSON URLs by @deiga in [#14007](#14007) - **(python)** create the auto uv venv with mise's python during install by @halms in [#13981](#13981) - **(release)** skip the vfox-tiny test fixture when vendoring embedded plugins by @jdx in [#14047](#14047) - **(ruby)** keep Gemfile reload watches out of executable hooks by @DahanItamar in [#13985](#13985) - **(task)** list monorepo subproject tasks in the mise://tasks MCP resource by @jdx in [#14053](#14053) - **(uninstall)** report each version once in a dry run by @jdx in [#13992](#13992) ### 📚 Documentation - **(http)** show a package proxy recipe for url_replacements by @jdx in [#14050](#14050) - **(readme)** add Star History badges by @jdx in [#13968](#13968) - keep code blocks and alert markers out of llms.txt summaries by @DahanItamar in [#14034](#14034) ### ⚡ Performance - **(secrets)** read cached fnox secrets from the fnox daemon by @jdx in [#13979](#13979) ### 🧪 Testing - **(e2e)** stabilize task timing assertions by @jdx in [#13977](#13977) - **(go)** disable minimum_release_age in go install e2e by @jdx in [#13989](#13989) ### 📦️ Dependency Updates - lock file maintenance by @renovate[bot] in [#13963](#13963) - update github actions by @renovate[bot] in [#13994](#13994) - update rust crates by @renovate[bot] in [#13996](#13996) - update rust crate nodejs-semver to v7 by @renovate[bot] in [#13999](#13999) - update jdx/mise-action action to v5 by @renovate[bot] in [#13997](#13997) - update jdx/renovate-config action to v1.0.2 by @renovate[bot] in [#14003](#14003) - update dependency usage to latest by @renovate[bot] in [#14004](#14004) - update jdx crates to v6.12.1 by @renovate[bot] in [#14002](#14002) - update rust crate sigstore-verify to 0.14 by @jdx in [#14019](#14019) - update rattler by @renovate[bot] in [#13998](#13998) - update rust crate clx to v3.0.4 by @renovate[bot] in [#14028](#14028) ### 📦 Registry - update moved plugin references by @jdx in [#13972](#13972) ### Chore - **(ci)** update pr-closer to v1.3.0 by @jdx in [83f3e90](83f3e90) ### Ci - update pr closer action by @jdx in [#13970](#13970) - add manual M4 sandbox pilot by @jdx in [09e8f8f](09e8f8f) ### Security - **(env)** keep secrets inherited from a parent mise out of templates, caches and other tasks by @jdx in [#13966](#13966) ### New Contributors - @DahanItamar made their first contribution in [#14034](#14034) - @deiga made their first contribution in [#14007](#14007) - @james-newell-forge made their first contribution in [#13971](#13971) ## 📦 Aqua Registry Updates ### New Packages (3) - [`editorconfig/editorconfig-core-go`](https://github.com/editorconfig/editorconfig-core-go) - [`jdx/jactionlint`](https://github.com/jdx/jactionlint) - [`tontinton/maki`](https://github.com/tontinton/maki) ### Updated Packages (3) - [`anchore/syft`](https://github.com/anchore/syft) - [`eksctl-io/eksctl`](https://github.com/eksctl-io/eksctl) - [`regclient/regclient/regsync`](https://github.com/regclient/regclient)
https://entire.io/gh/jdx/mise/trails/464
Summary
Updates
sigstore-verifyfrom 0.11 to 0.14 and portsmise-sigstoreto the new API. This replaces the Renovate PR #13995, which can't compile on its own because 0.14 is a breaking release. There is no user-visible behavior change: attestation, cosign and SLSA verification keep the same trust decisions.API changes handled:
TufConfig::customnow takes aTufBootstrap; the mirror still bootstraps from the embedded production root (SigstoreInstance::PublicGood.tuf_root()).DEFAULT_TUF_URLis no longer exported, somise-sigstoredefines it.VerificationPolicyhas noDefault; mise usesany_identity()and keeps authorizing the signer itself via the existing workflow check.skip_tlogis nowskip_tlog_unsafe, applied only when the bundle has no inclusion proof (same as before).verify_with_keytakes an explicitPublicKeyVerificationPolicy::default()(tlog verified, as before).envelope.signature,payload.as_bytes()); key type detection usesKeyAlgorithm::from_spki, still accepting only Ed25519 and ECDSA P-256.Testing
cargo test -p mise-sigstore(54 pass) andcargo +stable clippy --workspace --all-features --all-targets -- -D warningsare clean.Supersedes #13995.
🤖 Generated with Claude Code
AI-assisted — Tool: Claude Code; model: anthropic/claude-sonnet-5-5; version: unavailable.
Note
Medium Risk
Changes sit on attestation, cosign, and SLSA verification paths; the diff is mostly an API port, but reviewers should confirm policy choices still match 0.11 behavior.
Overview
Bumps
sigstore-verifyfrom 0.11 to 0.14 inmise-sigstore(with matchingCargo.lockchurn for the sigstore crate graph and transitive bumps likewindows-sys). This is a compile-fix for the breaking 0.14 release, not a feature change.mise-sigstoreis updated to match the new API while keeping the same verification rules:VerificationPolicy::any_identity()plus the existing workflow identity check;skip_tlog_unsafe()only when a bundle has no Rekor inclusion proof;skip_sct()for GitHub-internal certs; andPublicKeyVerificationPolicy::default()onverify_with_key. TUF mirror overrides now useTufConfig::custom(url, TufBootstrap::trusted(...))instead ofwith_root(PRODUCTION_TUF_ROOT), andDEFAULT_TUF_URLis defined locally because 0.14 no longer exports it.DSSE handling follows the new envelope shape (
payload.as_bytes(), singleenvelope.signature), cosign key detection usesKeyAlgorithm::from_spki, bundle validation usesValidationOptions::new(), andTrustedRoot::fulcio_certs()is used without the oldResultwrapper. Tests were adjusted for theTufConfigdebug/URL assertions.Reviewed by Cursor Bugbot for commit 91b26fc. Bugbot is set up for automated code reviews on this repo. Configure here.
Summary by CodeRabbit