Title: ci(release): adopt npm staged publishing via OIDC by mikolalysenko · Pull Request #87 · SocketDev/socket-patch · GitHub
Open Graph Title: ci(release): adopt npm staged publishing via OIDC by mikolalysenko · Pull Request #87 · SocketDev/socket-patch
X Title: ci(release): adopt npm staged publishing via OIDC by mikolalysenko · Pull Request #87 · SocketDev/socket-patch
Description: Summary
Switch npm-publish to npm stage publish so releases go through npm's staging queue and require a 2FA-gated human approval before becoming installable.
Bump actions/setup-node to v6.4.0 with package-manager-cache: false (kills the always-auth deprecation warning from v4).
Drop --provenance — OIDC trusted publishing emits provenance automatically.
Add a step that writes per-package review links and an org-dashboard URL to the workflow run's step summary, plus a ::notice:: pointing maintainers straight at the staged-packages dashboard.
Why
The previous release failed with 403 OIDC permission denied for this action because npm's trusted-publisher rules (effective 2026-05-20) require the allowed-action checkbox to be explicit, and direct npm publish from CI is no longer the recommended path for trusted-publisher-driven workflows. Staged publishing pairs with trusted publishing to give "proof of presence" on every release — a stolen OIDC token cannot ship a malicious version without a maintainer's 2FA approval.
Required manual setup (one-time, per package)
For each of the 15 packages, visit https://www.npmjs.com/package/@socketsecurity/
Open Graph Description: Summary Switch npm-publish to npm stage publish so releases go through npm's staging queue and require a 2FA-gated human approval before becoming installable. Bump actions/setup-node to v6.4.0...
X Description: Summary Switch npm-publish to npm stage publish so releases go through npm's staging queue and require a 2FA-gated human approval before becoming installable. Bump actions/setup-node to v6...
Opengraph URL: https://github.com/SocketDev/socket-patch/pull/87
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:9aa67574-3ee7-f7c4-07b4-b4fd675390a7 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | A15C:9D1CD:16A2CEC:1E9FDC0:6A4F239E |
| html-safe-nonce | 76578ee76c08bd6d02eb7e7c8a970252b7203437d0407ab0849fcb6b14bfdf6b |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBMTVDOjlEMUNEOjE2QTJDRUM6MUU5RkRDMDo2QTRGMjM5RSIsInZpc2l0b3JfaWQiOiI2Mjk5MTM0OTY1MjIyMTU1MTY2IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 69b7d9cbb01f2d29aec58133cae5e0386c8e9afa2dfa57c1f029ef66378a5b8c |
| hovercard-subject-tag | pull_request:3756996902 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/SocketDev/socket-patch/pull/87/files |
| twitter:image | https://avatars.githubusercontent.com/u/231686?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/231686?s=400&v=4 |
| og:image:alt | Summary Switch npm-publish to npm stage publish so releases go through npm's staging queue and require a 2FA-gated human approval before becoming installable. Bump actions/setup-node to v6.4.0... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | b92d11c0aa4a77d54ef4af1078b6a15fb5a70a215b30c4ecf28889d5a8e656d9 |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/SocketDev/socket-patch git https://github.com/SocketDev/socket-patch.git |
| octolytics-dimension-user_id | 69326764 |
| octolytics-dimension-user_login | SocketDev |
| octolytics-dimension-repository_id | 1093661456 |
| octolytics-dimension-repository_nwo | SocketDev/socket-patch |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1093661456 |
| octolytics-dimension-repository_network_root_nwo | SocketDev/socket-patch |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 2b8f23afb982271f1b22258a94aede67a6b77760 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width