• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

StoneCypher / jssm / aa01a95a888d54b7d15112badaebaac6f623daf9
100%
master: 100%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 12 May 2026 10:24AM UTC
Jobs 12
Files 15
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

12 May 2026 09:29AM UTC coverage: 100.0%. Remained the same
aa01a95a888d54b7d15112badaebaac6f623daf9

push

github

StoneCypher
chore(ci): switch to npm trusted publishing (OIDC)

Replaces the long-lived `NPM_TOKEN` auth path with npm's
Trusted Publisher / OIDC flow.  The release job now exchanges
a short-lived GitHub-issued OIDC token with npm at publish
time, scoped to this specific workflow run.

Workflow changes:
- Add `permissions: id-token: write` on the release job so
  GitHub Actions issues the OIDC token for npm to verify.
- Switch `npm publish` to `npm publish --provenance --access
  public`.  `--provenance` triggers the OIDC code path and
  emits a signed attestation linking the published tarball
  to the exact GitHub Actions run that built it (visible as
  the Provenance badge on the npm package page).
- Remove the `env: NODE_AUTH_TOKEN` block.  The token is no
  longer used by `npm publish`.

Required npm-side configuration (one-time, manual UI work):
- npmjs.com -> jssm package settings -> Trusted Publishers ->
  Add Publisher: GitHub Actions, org `StoneCypher`,
  repo `jssm`, workflow filename `nodejs.yml`, environment
  blank.
- Toggle "Disallow token access" to closed.  Closes the
  parallel long-lived-token attack surface entirely.

Follow-up tasks once the first OIDC-authenticated publish
succeeds:
- Delete the `JSSM_PUBLISH_TOKEN_FOR_GH_CI_CD` automation
  token on npm (Account -> Access Tokens).
- Delete the `JSSM_PUBLISH_TOKEN_FOR_GH_CI_CD` secret in
  this repo's Settings -> Secrets and variables -> Actions.

827 of 827 branches covered (100.0%)

Branch coverage included in aggregate %.

7599 of 7599 relevant lines covered (100.0%)

10198.73 hits per line

Jobs
ID Job ID Ran Files Coverage
1 aa01a95a888d54b7d15112badaebaac6f623daf9.1 12 May 2026 10:24AM UTC 15
100.0
GitHub Action Run
2 aa01a95a888d54b7d15112badaebaac6f623daf9.2 12 May 2026 10:24AM UTC 15
100.0
GitHub Action Run
3 aa01a95a888d54b7d15112badaebaac6f623daf9.3 12 May 2026 10:24AM UTC 15
100.0
GitHub Action Run
4 aa01a95a888d54b7d15112badaebaac6f623daf9.4 12 May 2026 10:24AM UTC 15
100.0
GitHub Action Run
5 aa01a95a888d54b7d15112badaebaac6f623daf9.5 12 May 2026 10:25AM UTC 15
100.0
GitHub Action Run
6 aa01a95a888d54b7d15112badaebaac6f623daf9.6 12 May 2026 10:25AM UTC 15
100.0
GitHub Action Run
7 aa01a95a888d54b7d15112badaebaac6f623daf9.7 12 May 2026 10:25AM UTC 15
100.0
GitHub Action Run
8 aa01a95a888d54b7d15112badaebaac6f623daf9.8 12 May 2026 10:25AM UTC 15
100.0
GitHub Action Run
9 aa01a95a888d54b7d15112badaebaac6f623daf9.9 12 May 2026 10:25AM UTC 15
100.0
GitHub Action Run
10 aa01a95a888d54b7d15112badaebaac6f623daf9.10 12 May 2026 10:25AM UTC 15
100.0
GitHub Action Run
11 aa01a95a888d54b7d15112badaebaac6f623daf9.11 12 May 2026 10:25AM UTC 15
100.0
GitHub Action Run
12 aa01a95a888d54b7d15112badaebaac6f623daf9.12 12 May 2026 10:26AM UTC 15
100.0
GitHub Action Run
Source Files on build aa01a95a888d54b7d15112badaebaac6f623daf9
  • Tree
  • List 15
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • aa01a95a on github
  • Prev Build on main (#01D371A9...)
  • Next Build on main (#8298E592...)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc