Skip to content

fix: recover interrupted stable npm releases - #3045

Merged
rebeccahum merged 1 commit into
trunkfrom
codex/recover-npm-publish
Sep 10, 2026
Merged

fix: recover interrupted stable npm releases#3045
rebeccahum merged 1 commit into
trunkfrom
codex/recover-npm-publish

Conversation

@rebeccahum

Copy link
Copy Markdown
Contributor

Problem

The v4.1.2 release created its GitHub release and tag, then failed at npm publish. Rerunning the original action attempts to recreate the release, and its global silent npm logging hides the publish error.

Change

Add a manual recover-stable mode to the existing npm publishing workflow so trusted publishing keeps the same workflow identity and environment. Recovery builds and tests the existing stable tag, publishes it to latest with npm error logging, and runs the downstream documentation jobs. It validates the release metadata and package version, rejects already published versions and downgrades, and serializes stable publication. The existing prerelease mode remains the default.

After merging, use Actions → Publish to npm (if applicable) → Run workflow, branch trunk, release_mode: recover-stable, release_version: 4.1.2. A rerun of the original failed run will not use this change. Recovery does not create the regular action's next development-version PR; that remains a separate follow-up after publication.

Validation

  • actionlint .github/workflows/npm-publish.yml (including ShellCheck): passed.
  • Prettier checks for the workflow and recovery instructions: passed.
  • git diff --check: passed.
  • Executed 13 isolated checks against the workflow's actual shell/Node guard blocks using mocked GitHub/npm responses: passed (valid release, wrong branch, blank/malicious/prerelease input, draft/prerelease metadata, missing release, published version, downgrade, registry failure, malformed response).
  • Read-only npm registry check confirmed latest is 4.1.1 and 4.1.2 is absent.
  • No publish or deployment performed. Node/Go runtime and parity suites were not run because this change only affects release orchestration and documentation; the recovery run performs the tagged package's build and tests before publishing.

@github-actions

Copy link
Copy Markdown
Contributor

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 2 package(s) with unknown licenses.
See the Details below.

License Issues

.github/workflows/npm-publish.yml

PackageVersionLicenseIssue Type
actions/checkout7.*.*NullUnknown License
actions/setup-node7.*.*NullUnknown License

OpenSSF Scorecard

PackageVersionScoreDetails
actions/actions/checkout 7.*.* 🟢 7
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained🟢 1022 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Binary-Artifacts🟢 10no binaries found in the repo
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies🟢 3dependency not pinned by hash detected -- score normalized to 3
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Packaging⚠️ -1packaging workflow not detected
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
SAST🟢 10SAST tool is run on all commits
Branch-Protection🟢 6branch protection is not maximal on development and all release branches
actions/actions/setup-node 7.*.* 🟢 6.4
Details
CheckScoreReason
Maintained🟢 1021 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Binary-Artifacts🟢 9binaries present in source code
Code-Review🟢 10all changesets reviewed
Packaging⚠️ -1packaging workflow not detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies🟢 5dependency not pinned by hash detected -- score normalized to 5
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST🟢 10SAST tool is run on all commits

Scanned Files

  • .github/workflows/npm-publish.yml

@sonarqubecloud

Copy link
Copy Markdown

@rebeccahum
rebeccahum merged commit 64a3767 into trunk Sep 10, 2026
20 of 22 checks passed
@rebeccahum
rebeccahum deleted the codex/recover-npm-publish branch September 10, 2026 15:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant