Repository navigation
Token-free CI: public-npm deps, OIDC, built-in GITHUB_TOKEN, pnpm 11 - #35
Merged
Merged
Conversation
…); pnpm 11 - drop GitHub Packages routing (remove .npmrc): @alienfast/biome-config + @alienfast/tsconfig now resolve from public npm, so installs need no token - auto creates GitHub releases/labels with the built-in GITHUB_TOKEN; remove the GH_TOKEN PAT, PROTECTED_BRANCH_REVIEWER_TOKEN and (now unused) NPM_TOKEN envs. npm publish stays on OIDC trusted publishing - pnpm 10 -> 11: move build-script approval to pnpm-workspace.yaml `allowBuilds`; drop the package.json `pnpm` field (no longer read by pnpm 11) - bump @alienfast/biome-config ^1.0.6, @biomejs/biome ^2.4.16; pin i18next 26.3.0 (26.3.1 was published <24h ago and trips a minimumReleaseAge supply-chain policy) - regenerate pnpm-lock.yaml
pnpm 11 enforces a default ~24h minimumReleaseAge supply-chain delay. Freshly-published @alienfast packages (our own org, e.g. biome-config 1.0.6) blocked 'pnpm install --frozen-lockfile' in CI. Allowlist the @alienfast scope so our own releases install immediately, while third-party deps keep the age protection.
📦 Published PR as canary version:
|
|
🚀 PR was released in |
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.
Summary
Completes the move to a fully token-free release pipeline and bumps to pnpm 11. Follows up on #34 (which fixed npm publishing via OIDC) by removing the last long-lived token — the
GH_TOKENPAT auto used for GitHub releases, which was the cause of thev4.0.0release 404.Why
The
v4.0.0release published to npm (OIDC ✓) but failed to create the GitHub Release: auto's Releases API call usedGH_TOKEN(a fine-grained PAT that could read packages but lacked Contents: write), returning 404. Rather than rotate another PAT, this removes the PAT entirely.Changes
Token-free releases
.npmrc.@alienfast/biome-configand@alienfast/tsconfigare now consumed from public npm, so dependency installs need no token at all. (Requires biome-config ≥ 1.0.5 on public npm, now published as 1.0.6.)GITHUB_TOKENfor GitHub releases/labels (it already hascontents/issues/pull-requests: writefrom the workflowpermissionsblock). Removed theGH_TOKENPAT,PROTECTED_BRANCH_REVIEWER_TOKEN, and the now-unusedNPM_TOKENenvs from build.yml.NPM_TOKEN.Net: no long-lived secrets in the release path — installs use public npm, GitHub releases use the per-run built-in token, npm publish uses OIDC.
pnpm 10 → 11
packageManager: pnpm@11.5.1.package.jsonpnpmfield, so build-script approval moves to pnpm-workspace.yaml asallowBuilds(the pnpm 11 mechanism;onlyBuiltDependenciesalone is no longer honored).minimumReleaseAgeis a pnpm 11 default (won't install <24h-old packages — a supply-chain delay enforced on everypnpm install, including CI). Freshly-published@alienfast/*releases (our own org) would block CI, so pnpm-workspace.yaml allowlists the scope viaminimumReleaseAgeExclude: ['@alienfast/*']. Third-party deps keep the age protection.pnpm-lock.yaml(pnpm 11 format;@alienfast/*resolve from public npm).Dependency bumps
@alienfast/biome-config^1.0.6,@biomejs/biome^2.4.16.i18nextpinned to26.3.0(exact).26.3.1was published <24h ago and trips theminimumReleaseAgepolicy above; since i18next is third-party (not covered by the@alienfast/*allowlist) it's pinned to the prior, functionally-equivalent release and can be bumped once 26.3.1 ages out.Testing
pnpm install --frozen-lockfile— passes pnpm 11's supply-chain policy check (the exact CI command), token-free (public npm), esbuild/biome build scripts approved viaallowBuildspnpm build— ESM + DTS (4 files)pnpm check-typespnpm test— 18 passedpnpm check-biome— no findingsnpm.pkg.github.comreferences remain (config or lockfile)Note
The
v4.0.0GitHub Release is still missing (the failed run). Once this merges, future releases will create it correctly; the existingv4.0.0can be backfilled separately from the existing tag if desired.🤖 Generated with Claude Code