Releases: coroboros/ci
Releases · coroboros/ci
0.1.13
Documentation
README— addlockfile=trueto the recommendedNPM_CONFIG_FILEtemplate. Pnpm< 11.0.0interprets the precedingpackage-lock=falseline aslockfile=false, disablingpnpm-lock.yamlreads and breakingpnpm install --frozen-lockfileinjavascript/base. The new line re-enables pnpm's lockfile explicitly on pnpm 10.x and is harmless on pnpm>= 11, wherelockfile=trueis already the default andpackage-lockis scoped to npm's lockfile only.
0.1.12
Documentation
README— document the recommended hardenedNPM_CONFIG_FILE.npmrc(per-line rationale) and the token bootstrap auth setup (NPM_PACKAGE_REGISTRY_TOKEN+NPM_EXTRA_CONFIGsecrets, whynpm publishis used on that path, migration token → OIDC after first publish). Reaffirms that every npm-publish-related value is a secret (encrypted), not a GitHubvar. Reflects the v0.1.11 token-path hardening.
0.1.11
Fixes
javascript-npm-packages— pass--ignore-scripts --access publictonpm publishon the token bootstrap path. Defense in depth against postinstall-worm supply-chain attacks: install-time scripts are already skipped bypnpm install --frozen-lockfile --ignore-scriptsinjavascript/base; the publish flag now also skipsprepack/postpack/publish/postpublishwhile the long-lived bootstrap token is in env.prepublishOnlystill runs (knownnpm publishbehavior — the flag does not cover it), but it invokes our own gates from the frozen lockfile that already ran in the base action. The bootstrap token's exposure narrows to one publish — switch to OIDC + provenance via Trusted Publisher for1.0.1+to eliminate the long-lived token entirely.
0.1.10
Fixes
javascript-npm-packages— usenpm publishfor the token bootstrap path. v0.1.5 → v0.1.9 chased pnpm-side workarounds (env vars, configs, npx version pin, standalone binary download with SHA verify,manage-package-manager-versions=false) and each one hit a different pnpm 10/11 dead-end: pnpm 11 auto-attempts OIDC without.npmrcfallback; pnpm 10.33.0 vianpxis intercepted by corepack; the standalone 10.33.0 binary self-switches onpackageManager: pnpm@11.xand crashes against its own snapshot.npm publishis not managed by corepack, does not auto-attempt OIDC, reads_authTokenfrom.npmrcdirectly, and produces an identical tarball (samefiles, sameprepublishOnly). The OIDC branch (pnpm publish --provenance --no-git-checks) is unchanged — pnpm OIDC works once a Trusted Publisher is bound; only the pre-Trusted-Publisher bootstrap takes the npm CLI path. Revert to a singlepnpm publishonce pnpm 11.x's bootstrap-via-token regression is upstream-fixed.
0.1.9
Fixes
javascript-npm-packages— pass--config.manage-package-manager-versions=falseto the pinned pnpm 10.33.0 binary so it does not attempt to self-switch to the consumer'spackageManagerpin. v0.1.8 successfully fetched and SHA-verifiedpnpm-linux-x64@10.33.0, but pnpm 10.33.0 readpackageManager: pnpm@11.xfrom the package'spackage.jsonand triedpnpm add @pnpm/exe@11.x, which crashes against the single-file standalone binary (/snapshot/dist/pnpm.cjs not found). Disabling the self-switch keeps the pinned 10.33.0 running for the publish call only.
0.1.8
Fixes
javascript-npm-packages— fetch the pnpm 10.33.0 standalone binary directly for the token publish path. v0.1.7'snpx -y pnpm@10.33.0 publishwas intercepted by corepack — everypnpminvocation in a project with apackageManagerfield goes through the corepack shim, including the binary thatnpxresolves to, so the consumer'spnpm@11.xran anyway and the sameERR_PNPM_AUTH_TOKEN_EXCHANGE404 surfaced. The fix downloadspnpm-linux-x64from the pinnedv10.33.0GitHub release into${RUNNER_TEMP}, verifies its SHA-256 (8d4e8f7d778e8ac482022e2577011706a872542f6f6f233e795a4d9f978ea8b5), and executes it by absolute path. Bypasses corepack entirely; the consumer package's ownpackageManagerpin is untouched. The OIDC branch (pnpm publish --provenance --no-git-checks) is unchanged. Revert to a single pnpm version once pnpm 11.x's bootstrap-via-token regression is upstream-fixed.
0.1.7
Fixes
javascript-npm-packages— invoke pnpm 10.33.0 vianpxfor the token publish path only. v0.1.5 (env -u) and v0.1.6 (NPM_CONFIG_PROVENANCE=false) both failed to stop pnpm>= 11.1.3from attempting OIDC in CI; after OIDC fails (no Trusted Publisher on a bootstrap publish), pnpm 11.x does not fall back to the.npmrc_authTokenand the PUT 404s. pnpm 10.33.0 has no OIDC code path, reads_authTokenfrom.npmrcdirectly, and publishes. Usingnpx pnpm@10.33.0keeps the consumer package's ownpackageManagerpin (typicallypnpm@11.x) intact — corepack still drives every other step (install,lint,build,test, the OIDC branch); only the token-pathpnpm publishcall uses 10.33.0. The OIDC branch (pnpm publish --provenance --no-git-checks) is unchanged. Revert to a single pnpm version once the pnpm 11.x bootstrap-via-token regression is upstream-fixed.
0.1.6
Fixes
javascript-npm-packages— disable provenance auto-detection on the token publish path. v0.1.5'senv -uof the GitHub OIDC env vars caused pnpm>= 11.1.3to emitERR_PNPM_ID_TOKEN_GITHUB_WORKFLOW_INCORRECT_PERMISSIONSand still fail the PUT with 404 — pnpm in CI auto-enablesprovenance=trueregardless of the OIDC env vars, and skipping OIDC after the auto-enable leaves the publish without usable auth. SetNPM_CONFIG_PROVENANCE=falseon the token-path command instead: pnpm sees provenance explicitly disabled, never attempts OIDC, and reads_authTokenfrom.npmrcdirectly. The OIDC branch is unchanged. Workflow stays pnpm-version-agnostic.
0.1.5
Fixes
javascript-npm-packages— isolate the token publish path from pnpm 11's auto-OIDC. pnpm>= 11.1.3auto-attempts the OIDC token exchange wheneverACTIONS_ID_TOKEN_REQUEST_URL/ACTIONS_ID_TOKEN_REQUEST_TOKENare present (GitHub sets them whenid-token: writeis granted at the job level — required for the post-bootstrap OIDC branch). On the token bootstrap path (a new scoped package without a Trusted Publisher binding, or any token-locked exception), the auto-attempt resolves to 404 from npm and pnpm then publishes with no usable auth — the PUT fails with 404. The fixenv -u's both vars on the token-path command only — the OIDC branch is unchanged. Keeps the workflow pnpm-version-agnostic: both 10.x and 11.x work on the token path, and 11.x (>= 11.0.7) still drives OIDC when the token is absent.
0.1.4
Fixes
javascript-npm-packages— readNPM_EXTRA_CONFIGfromsecrets, notvars. It is appended verbatim into.npmrc, so it can carry auth material; a variable would expose that in plaintext and in logs. Declared as an optionalworkflow_callsecret; callers forward it via theirsecrets:block.