Repository navigation
ci(release): use crates.io trusted publishing - #2801
Merged
Merged
Conversation
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
bashkit | 79c661b | Commit Preview URL Branch Preview URL |
Oct 31 2026, 01:45 AM |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Publish all four Rust crates with GitHub OIDC trusted publishing. Each upload job gets its own short-lived token after credential-free package verification, using the SHA-pinned official crates.io action. The action masks and revokes tokens; existing immutable source validation, dependency order and registry verification remain intact.
The JavaScript test-tool graph also requires patched glob/minimatch releases because the existing graph failed CI Audit with GHSA-3g3m-2fjr-6pw4 and GHSA-g3hv-75wg-m249. Published runtime dependencies are unchanged; the normal three-day dependency cooldown remains enforced.
Why
Remove stored crates.io tokens from automated publication and bind access to this repository's publish.yml workflow and release environment.
Before / After
Before: four upload steps used
secrets.CARGO_REGISTRY_TOKEN.After: all four use
steps.auth.outputs.token; only those jobs haveid-token: write. The new regression test fails on the original workflow and passes after migration.Validation:
just pre-prpasses (format, Clippy, complete default Rust workspace tests/doctests, Python tests, capability/knowledge/docs/workflow/changelog guards and cargo vet). Run on macOS with installed GNU coreutils on PATH and local socket/process access for the Bash oracle tests. The 205 Python script tests ran successfully (8 platform-specific skips), Actionlint passes, and the OKF checks pass. These checks cover immutable release source, main-based recovery, package verification before token exchange and credential scoping. After the audit repair: the exact CIscripts/audit-lockfiles.shpasses across all lockfiles, frozen pnpm installation and package formatting pass, the native JavaScript module and TypeScript wrappers build, and all 681 JavaScript tests pass. Release-security and audit-script regressions also pass. No real OIDC publication has been performed.Risk
Follow-ups
All four trusted publishers and release environment restrictions are approved, configured and verified. All final PR CI checks pass; no actionable review comments remain. No implementation follow-ups. A first real OIDC publication remains separate evidence; existing credentials stay until that publication and consumer checks are complete.
Checklist