Repository navigation
Conversation
Replace release-v1-legacy-plugins.yml and release.json with one release.yml that runs on release:published, using the same filename as main so one npm trusted publisher per package covers both lines. Drop NPM_TOKEN in favour of id-token: write (OIDC), run on Node 24 with npm@latest (trusted publishing needs npm >= 11.5.1), install with a frozen lockfile and check out the release tag without persisted credentials. Each of the 20 packages publishes in its own step under the v1-x dist-tag, in the old order, and is skipped when its version is already on npm. Set repository.url to the canonical git+https form for this repo, which npm checks trusted publishes and provenance against. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
🔒 Security Scan Results
⏱️ SLA Breach Summary
ℹ️ Vulnerabilities Without Available Fixes (Informational Only)The following vulnerabilities were detected but do not have fixes available (no upgrade or patch). These are excluded from failure thresholds:
✅ BUILD PASSED - All security checks passed |
🔒 Security Scan Results
⏱️ SLA Breach Summary
ℹ️ Vulnerabilities Without Available Fixes (Informational Only)The following vulnerabilities were detected but do not have fixes available (no upgrade or patch). These are excluded from failure thresholds:
✅ BUILD PASSED - All security checks passed |
Problem
release-v1-legacy-plugins.ymlpublishes the 20 cli-plugins packages to npm under thev1-xdist-tag with a long-livedNPM_TOKEN, on every push tov1-legacy.The SE1 publishing policy requires OIDC trusted publishing instead: no token, one
release.ymlthat runs when a release is published, Node 24.The last two runs also end red: the post-publish
gh release createstep fails with HTTP 401 (PKG_TOKENis no longer valid, and its version variable is empty). And 15 packages'repositoryfields do not name this repo in the form npm checks at publish time.Fix
release-v1-legacy-plugins.ymland.github/config/release.jsonare replaced by onerelease.yml, the same filename as onmain, so one trusted publisher per package covers both lines.v1-legacy, manual runrelease: publishedNPM_TOKENid-token: write, no tokenJS-DevTools/npm-publish@v3steps,tag: v1-xnpm publish --access public --tag v1-xunless that version is already on npmclean:all, thenpnpm install --no-frozen-lockfilepnpm install --frozen-lockfilepersist-credentials: false@v4@v7, setup-node@v7, pnpm/action-setup pinned to its v6.1.0 commitpackage.json× 15repository:contentstack/cli(11 packages),contentstack/audit,contentstack/cli-cm-regex-validate, a non-canonical cli-plugins URL (content-type), missing (variants)git+https://github.com/contentstack/cli-plugins.gitwithdirectory, as onmain: npm checks it against the publishing repojson-to-variables+release.json(unused), corepack steps,gh release create(401).talismanrcrelease.yml: Talisman flags the pinned action SHA (false positive)Deviations from the policy's sample workflow, all because this is a pnpm monorepo with 20 packages on a maintenance line:
pnpm/action-setupstep: the repo uses pnpm.cache: 'pnpm'instead of'npm': there is nopackage-lock.json.pnpm install --frozen-lockfileinstead ofnpm ci: the same lockfile-strict install, for pnpm.pnpm -r --sort run build: plugins depend on each other (import on audit and variants, clone on export and import, …), and a package skipped as already published never runs itsprepack, so its dependents need itslib/built up front.--tag v1-x: this line must never movelatest.@v4(v4 runs on Node 20, which is end-of-life); the third-partypnpm/action-setupis pinned to a commit SHA, as SRE recommended.Verification
Node 22 and Node 24: frozen-lockfile install and build pass, and 4,128 unit tests pass. The 20 publish steps, run with
npm publishstubbed, go in the old order with--tag v1-x, skip the versions already on npm, pick up bumped ones, and a failed step stops the job.