Skip to content

fix: provenance & oidc - #15

Merged
TobiTenno merged 7 commits into
masterfrom
TobiTenno-patch-1
Nov 29, 2025
Merged

fix: provenance & oidc#15
TobiTenno merged 7 commits into
masterfrom
TobiTenno-patch-1

Conversation

@TobiTenno

@TobiTenno TobiTenno commented Oct 14, 2025

Copy link
Copy Markdown
Member

What did you fix?

provenance & oidc support


Reproduction steps

do a release


Evidence/screenshot/link to line

Considerations

  • Does this contain a new dependency? [No]
  • Does this introduce opinionated data formatting or manual data entry? [No]
  • Does this pr include updated data files in a separate commit that can be reverted for a clean code-only pr? [No]
  • Have I run the linter? [Yes]
  • Is is a bug fix, feature request, or enhancement? [Security]

Summary by CodeRabbit

Release Notes

  • Chores

    • Updated Node.js LTS version support for improved compatibility.
    • Enhanced CI/CD workflows with automated security scanning and dependency review checks.
    • Streamlined build and release configuration with simplified scripts and updated tooling.
  • Tests

    • Improved testing infrastructure with updated framework and coverage reporting.
  • Style

    • Added automated commit message validation for conventional commit format enforcement.
    • Enhanced code quality checks with updated linting rules and pre-commit hooks.

✏️ Tip: You can customize this high-level summary in your review settings.

@TobiTenno
TobiTenno requested a review from a team as a code owner October 14, 2025 18:02
@coderabbitai

coderabbitai Bot commented Oct 14, 2025

Copy link
Copy Markdown

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

The PR modernizes the project's development toolchain and CI/CD infrastructure by upgrading GitHub Actions to v6 and replacing matrix-based Node.js strategies with a version file, introducing Husky Git hooks for pre-commit and commit-message linting using commitlint, extracting tool configurations from package.json into dedicated files, adding CodeQL and dependency-review workflows, and updating Node.js LTS version.

Changes

Cohort / File(s) Change Summary
GitHub Actions Workflows
.github/workflows/ci.yaml, .github/workflows/release.yaml
Upgraded checkout from v2 to v6 and setup-node from v1 to v6; replaced matrix-based Node.js version strategies with node-version-file pointing to .nvmrc; replaced npm install with npm ci; added explicit permissions (id-token, contents, pull-requests, issues); added commitlint validation step; updated coveralls action configuration.
New CI/CD Workflows
.github/workflows/codeql.yaml, .github/workflows/dependency-review.yaml
Added CodeQL Advanced workflow for multi-language security analysis triggered on push, PRs, and schedule; added Dependency review workflow triggered on PRs with comment-summary-in-pr enabled.
Configuration Files (Extracted from package.json)
.commitlintrc.mjs, .eslintrc.yml, .mocharc.yml, .nycrc.yml, .releaserc.yml, .lintstagedrc.yml
Created dedicated config files for commitlint, ESLint, Mocha, NYC coverage, Semantic Release, and lint-staged; moved tool configurations out of package.json into separate declarative files.
Git Hooks
.husky/commit-msg, .husky/pre-commit
Added Husky Git hooks: commit-msg runs commitlint for commit message validation; pre-commit runs lint-staged for pre-commit linting and testing.
Build Artifacts & Ignores
.eslintignore, .npmignore
Created .eslintignore with app.min.js entry; updated .npmignore to exclude configuration files (.eslintrc.yml, .mocharc.yml, .commitlintrc.mjs, etc.).
Package & Node Configuration
package.json, .nvmrc
Updated node-fetch from ^2.6.6 to ^2.7.0; added @commitlint/cli, @commitlint/config-conventional, and husky; updated mocha to ^11.7.5; removed coveralls and clean-package; added prepare script for Husky; added publishConfig with provenance: true; removed top-level mocha, nyc, eslintConfig, eslintIgnore, clean-package, and release config blocks; simplified prepublishOnly script. Updated Node.js LTS from erbium to jod.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

  • Workflow compatibility: Verify that upgraded GitHub Actions (checkout v6, setup-node v6) work correctly with the new permission configurations and updated Semantic Release invocation.
  • Configuration correctness: Validate syntax and semantics across multiple new tool configuration files, particularly the ESLint and Mocha rules, and ensure commitlint and lint-staged integrate properly.
  • Dependency interactions: Review node-fetch upgrade, mocha version bump, and new tooling (Husky, commitlint) for compatibility and potential side effects on the CI/CD pipeline.
  • Git hooks setup: Confirm .husky hooks are correctly configured and will execute during pre-commit and commit-msg phases.
  • npm publishing changes: Ensure package.json removals (clean-package, coverage config) and new publishConfig settings don't break the publishing workflow.

Poem

🐰 Configurations scattered, now collected neat,
Actions upgraded, workflows complete,
Husky stands guard with commitlint's keen eye,
Tools in their places—a well-organized sigh!
✨ Hop, hop, hooray!

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'fix: provenance & oidc' directly aligns with the primary changes in the PR, which add provenance support (via publishConfig in package.json) and OIDC/GitHub token integration in workflows.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch TobiTenno-patch-1

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f1713a2 and 14b1a62.

📒 Files selected for processing (2)
  • .github/workflows/release.yaml (1 hunks)
  • package.json (2 hunks)
🔇 Additional comments (2)
package.json (2)

16-16: Repository field simplification LGTM.

String URL is valid and resolves correctly on npm.


142-144: provenance enabled in package.json; ensure runtime matches.

This is correct, but it only takes effect with npm>=9.5 (Node 18/20) and Actions id-token: write (added). Align the workflow to Node 20+ and setup-node@v4 so provenance is actually attached.

After the next release, verify the npm package page shows the “provenance” badge. If it doesn’t, check the workflow’s Node/npm versions in the logs.

Comment thread .github/workflows/release.yaml
@github-actions

github-actions Bot commented Oct 15, 2025

Copy link
Copy Markdown

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
  • ✅ 0 package(s) with unknown licenses.
  • ⚠️ 7 packages with OpenSSF Scorecard issues.

View full job summary

@github-advanced-security

Copy link
Copy Markdown

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/ci.yaml (1)

52-54: Do not pin actions to @master

Referencing coveralls@master is a supply-chain risk; pin to a version or SHA.

-      - name: Coveralls
-        uses: coverallsapp/github-action@master
+      - name: Coveralls
+        uses: coverallsapp/github-action@v2
         with:
           github-token: ${{ secrets.GITHUB_TOKEN }}

Optionally pin to a specific commit SHA for maximum safety.

🧹 Nitpick comments (5)
.github/workflows/dependency-review.yaml.yml (2)

33-39: Enforce failure on vulnerable dependencies

Without fail-on-severity, merges won’t be blocked even if vulns are found. Recommend failing on high+ and retrying snapshots.

       - name: 'Dependency Review'
         uses: actions/dependency-review-action@v4
         # Commonly enabled options, see https://github.com/actions/dependency-review-action#configuration-options for all available options.
         with:
           comment-summary-in-pr: always
-        #   fail-on-severity: moderate
+          fail-on-severity: high
+          retry-on-snapshot-warnings: true
         #   deny-licenses: GPL-1.0-or-later, LGPL-2.0-or-later
-        #   retry-on-snapshot-warnings: true

30-33: Align on checkout v5 across workflows

Use actions/checkout@v5 for consistency and latest fixes.

-      - name: 'Checkout repository'
-        uses: actions/checkout@v4
+      - name: 'Checkout repository'
+        uses: actions/checkout@v5
.github/workflows/ci.yaml (1)

12-20: Speed up and harden installs: npm ci + built-in cache

Use deterministic installs and enable caching in setup-node.

-      - uses: actions/checkout@v5
+      - uses: actions/checkout@v5
       - name: Use Node.js
         uses: actions/setup-node@v5
         with:
           node-version-file: '.nvmrc'
+          cache: 'npm'
       - name: Install Dependencies
-        run: npm install
+        run: npm ci
-      - uses: actions/checkout@v5
+      - uses: actions/checkout@v5
       - name: Use Node.js
         uses: actions/setup-node@v5
         with:
           node-version-file: '.nvmrc'
+          cache: 'npm'
-      - run: npm install
+      - run: npm ci
-      - run: npm i -D warframe-worldstate-data@latest
-      - uses: actions/checkout@v5
+      - uses: actions/checkout@v5
       - name: Use Node.js
         uses: actions/setup-node@v5
         with:
           node-version-file: '.nvmrc'
+          cache: 'npm'
-      - run: npm install
+      - run: npm ci

Also applies to: 26-33, 42-47

.github/workflows/codeql.yaml.yml (2)

59-61: Use checkout v5 for consistency

Minor alignment with the rest of CI.

-      - name: Checkout repository
-        uses: actions/checkout@v4
+      - name: Checkout repository
+        uses: actions/checkout@v5

68-80: Enable extended security queries for JS/TS

Broader coverage at low cost.

       - name: Initialize CodeQL
         uses: github/codeql-action/init@v3
         with:
           languages: ${{ matrix.language }}
           build-mode: ${{ matrix.build-mode }}
+          queries: security-extended
           # If you wish to specify custom queries, you can do so here or in a config file.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 14b1a62 and 2b8d20b.

📒 Files selected for processing (5)
  • .github/workflows/ci.yaml (3 hunks)
  • .github/workflows/codeql.yaml.yml (1 hunks)
  • .github/workflows/dependency-review.yaml.yml (1 hunks)
  • .github/workflows/release.yaml (1 hunks)
  • .nvmrc (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • .nvmrc
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/release.yaml
🔇 Additional comments (1)
.github/workflows/ci.yaml (1)

1-7: OIDC and provenance configuration verified Release workflow (release.yaml) defines permissions.id-token: write and package.json has publishConfig.provenance: true.

Comment thread .github/workflows/ci.yaml Outdated
Copilot AI review requested due to automatic review settings November 29, 2025 05:14

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds npm provenance and OIDC support to enable secure, verifiable package publishing while modernizing the project's tooling configuration. The changes refactor inline configurations from package.json into dedicated config files and update CI/CD workflows to use OIDC authentication.

  • Added publishConfig.provenance: true to package.json and OIDC permissions (id-token: write) to the release workflow
  • Migrated all tool configurations (ESLint, NYC, Mocha, semantic-release) from package.json to separate YAML/JS config files
  • Integrated Husky with commitlint and lint-staged for pre-commit quality checks
  • Added dependency review and CodeQL security scanning workflows

Reviewed changes

Copilot reviewed 16 out of 17 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
package.json Enabled npm provenance, added commitlint/husky dev dependencies, migrated configs to external files
.releaserc.yml Extracted semantic-release configuration from package.json
.nycrc.yml Extracted nyc (code coverage) configuration from package.json
.nvmrc Updated Node.js version to LTS Jod (from Erbium)
.npmignore Added config files to ignore list for published package
.mocharc.yml Extracted Mocha test configuration from package.json
.lintstagedrc.yml New lint-staged configuration for pre-commit hooks
.husky/pre-commit Added pre-commit hook to run lint-staged
.husky/commit-msg Added commit-msg hook to enforce conventional commits
.github/workflows/release.yaml Added OIDC permissions, updated to Node.js from .nvmrc, removed matrix strategy, switched to direct semantic-release execution
.github/workflows/dependency-review.yaml.yml New workflow for automated dependency vulnerability scanning on PRs
.github/workflows/codeql.yaml New CodeQL workflow for automated code security analysis
.github/workflows/ci.yaml Standardized Node.js version from .nvmrc, replaced npm install with npm ci, added repository check for Coveralls
.eslintrc.yml Extracted ESLint configuration from package.json
.eslintignore Extracted ESLint ignore patterns from package.json
.commitlintrc.mjs New commitlint configuration for conventional commits

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/dependency-review.yaml
Comment thread .github/workflows/release.yaml
Comment thread .nvmrc
Comment thread .nycrc.yml Outdated
Copilot AI review requested due to automatic review settings November 29, 2025 05:19

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 16 out of 17 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .lintstagedrc.yml
Comment thread package.json
Copilot AI review requested due to automatic review settings November 29, 2025 05:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 16 out of 17 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/release.yaml

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
.lintstagedrc.yml (1)

1-3: Running npm test in lint-staged is inefficient.

The current configuration runs npm test once for each staged JavaScript file, which will execute the entire test suite multiple times and significantly slow down commits. This approach can make the developer experience frustrating, especially with larger test suites.

Consider one of these alternatives:

Option 1 (Recommended): Remove npm test from lint-staged and rely on CI to run tests:

 '*.js':
   - eslint --cache --fix
-  - npm test

Option 2: Run tests once for all staged files by moving it to a separate hook:

 '*.js':
   - eslint --cache --fix
+'*':
+  - npm test

Note: The past review comment about lint-staged missing from devDependencies is still relevant. Ensure it's added to package.json.

🧹 Nitpick comments (8)
.npmignore (1)

11-19: Consider adding .husky to .npmignore.

The configuration files are correctly excluded from npm packages. However, the .husky/ directory containing Git hooks should also be excluded as it's not needed in published packages.

Apply this diff:

 # Configuration files
+.husky/
 .nycrc.yml
 .eslintignore
 .eslintrc.yml
 .mocharc.yml
 .releaserc.yml
 .lintstagedrc.yml
 .commitlintrc.mjs
.eslintrc.yml (1)

27-27: Consider the implications of disabling import/no-unresolved.

Setting import/no-unresolved to 0 disables checking for unresolved imports, which could hide legitimate import path errors and lead to runtime failures.

If this was disabled to avoid false positives, consider configuring the rule with specific ignorePatterns instead of disabling it entirely.

.releaserc.yml (1)

1-14: Semantic‑release plugin set looks good; tweak changelog plugin config for clarity

The overall plugin list and branches: master are aligned with your workflows. One small improvement: @semantic-release/changelog typically expects changelogFile (and already defaults to CHANGELOG.md), so the assets option here is non-standard and can be confusing.

You can either rely on the default or make the intent explicit:

 plugins:
   - "@semantic-release/github"
-  - - "@semantic-release/changelog"
-    - assets:
-        - CHANGELOG.md
+  - - "@semantic-release/changelog"
+    - changelogFile: CHANGELOG.md
   - - "@semantic-release/git"
     - assets:
       - package.json
       - CHANGELOG.md
       - app.min.js

Also worth double-checking that app.min.js exists before @semantic-release/git runs (see release workflow comment).

.husky/commit-msg (1)

1-1: Commit‑msg hook is fine; optionally quote the edit file argument

The Husky hook is wired correctly and uses --no to avoid network installs. For robustness, you can quote the edit file path:

-npx --no -- commitlint --edit $1
+npx --no -- commitlint --edit "$1"
.github/workflows/ci.yaml (1)

30-36: Pin warframe-worldstate-data instead of using @latest in CI

Using npm i -D warframe-worldstate-data@latest after npm ci reintroduces non-determinism into the build and can cause flaky CI when a new release of that package lands. This also partially defeats the point of npm ci’s lockfile-based reproducibility.

Prefer pinning a specific version:

  • Add warframe-worldstate-data with a concrete version to devDependencies and let npm ci install it, or
  • If you must install it here, pin it explicitly, e.g. warframe-worldstate-data@X.Y.Z.
-      - run: npm i -D warframe-worldstate-data@latest
+      # Prefer a pinned devDependency and rely on `npm ci`, or explicitly pin:
+      # - run: npm i -D warframe-worldstate-data@X.Y.Z

[ duplicate_comment ]

.github/workflows/release.yaml (1)

21-32: Ensure app.min.js exists before @semantic-release/git runs, or drop it from git assets

With the current setup:

  • prepublishOnly runs npm run minify (per package.json), which only executes when npm publish is called by @semantic-release/npm during the publish phase.
  • @semantic-release/git (configured in .releaserc.yml with assets: [package.json, CHANGELOG.md, app.min.js]) typically runs during the prepare phase, before npm publish.

That means app.min.js may not exist yet when the git plugin runs, or may be stale if it isn’t built elsewhere.

Consider one of:

  • Add an explicit build/minify step before npx semantic-release in this workflow, so app.min.js is present and up to date when the git plugin runs, or
  • Move minification to a script that semantic-release calls in prepare (or a dedicated build step), or
  • If you no longer want to commit built assets, remove app.min.js from the git plugin assets list.

This keeps the repo state and published package expectations in sync.

package.json (2)

14-16: Prepublish and Husky prepare scripts are coherent; confirm you’re okay publishing full manifest

Switching prepublishOnly to just npm run minify and using prepare: husky matches the rest of the tooling and keeps builds simple.

Without clean-package, your published package.json will now include dev fields (devDependencies, scripts, etc.), which is common practice and usually fine. If your prior intent was to ship a minimal manifest to npm, you may want either to reintroduce a trimming step or explicitly accept the larger manifest.


36-37: Dependency updates look reasonable; keep Node support expectations in mind

  • Bumping node-fetch to ^2.7.0 is a safe 2.x update and should remain compatible with your existing runtime API surface.
  • Adding @commitlint/* and husky as devDependencies aligns with the new CI/Husky hooks.
  • Updating Mocha to ^11.7.5 is fine for development, but note that modern Mocha versions target newer Node LTS releases.

Given .nvmrc now points to a modern LTS while "engines.node" still says >=8.17.0, the declared minimum Node version is no longer exercised by your test matrix. That’s not a blocker, but consider tightening the engines.node range in a future breaking release if you officially drop very old Node versions.

Also applies to: 39-41, 46-48

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2b8d20b and f2f6ae7.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (15)
  • .commitlintrc.mjs (1 hunks)
  • .eslintignore (1 hunks)
  • .eslintrc.yml (1 hunks)
  • .github/workflows/ci.yaml (2 hunks)
  • .github/workflows/codeql.yaml (1 hunks)
  • .github/workflows/dependency-review.yaml (1 hunks)
  • .github/workflows/release.yaml (1 hunks)
  • .husky/commit-msg (1 hunks)
  • .husky/pre-commit (1 hunks)
  • .lintstagedrc.yml (1 hunks)
  • .mocharc.yml (1 hunks)
  • .npmignore (1 hunks)
  • .nycrc.yml (1 hunks)
  • .releaserc.yml (1 hunks)
  • package.json (2 hunks)
✅ Files skipped from review due to trivial changes (2)
  • .nycrc.yml
  • .eslintignore
🔇 Additional comments (10)
.mocharc.yml (1)

1-3: LGTM!

The Mocha configuration is well-structured with appropriate settings for test execution.

.commitlintrc.mjs (1)

1-6: LGTM!

The commitlint configuration correctly extends the conventional config and appropriately disables the body-max-line-length rule for flexibility in commit messages.

.github/workflows/dependency-review.yaml (1)

1-39: LGTM!

The dependency review workflow is properly configured with appropriate permissions and uses current action versions. The filename issue mentioned in previous reviews appears to have been resolved.

.github/workflows/codeql.yaml (1)

1-100: LGTM!

The CodeQL workflow is well-configured with appropriate language detection (actions and javascript-typescript), correct permissions, and current action versions. The matrix strategy and build-mode settings are appropriate for this project type.

.eslintrc.yml (1)

6-19: I'll help you verify the claim about the valid-jsdoc ESLint rule. Let me start by investigating the ESLint version in use and confirm the deprecation status.
<function_calls>


#!/bin/bash

Find package.json files to check ESLint version

find . -name "package.json" -type f | head -5


</function_calls>
<function_calls>

ESLint valid-jsdoc rule deprecated removed version 7

</function_calls>

.github/workflows/ci.yaml (2)

12-24: Modernized lint job and title linting look good

Upgrading to actions/checkout@v6/actions/setup-node@v6, using node-version-file: '.nvmrc', switching to npm ci, and linting the PR title via commitlint all look consistent with the rest of the toolchain.

Just ensure .nvmrc is committed and set to the Node LTS version you intend to support in CI.


46-51: Coverage job updates are consistent with lint/test and Coveralls integration

Mirroring the updated checkout/setup-node usage with .nvmrc and npm ci in the coverage job looks good. The conditional Coveralls step for the main repo using coverallsapp/github-action@v2 is a reasonable setup.

Just make sure the GH_TOKEN secret has the scopes Coveralls expects (or switch to secrets.GITHUB_TOKEN if a PAT isn’t required).

Also applies to: 56-57

.github/workflows/release.yaml (2)

10-20: Release job permissions and Node setup align with OIDC/provenance goals

The explicit permissions block (including id-token: write) plus the upgrade to actions/checkout@v6 and actions/setup-node@v6 with .nvmrc are exactly what you need for modern npm provenance support, and they keep the workflow aligned with your CI jobs.

This should pair cleanly with publishConfig.provenance: true in package.json and the new .releaserc.yml.


21-25: Let me verify how semantic-release handles npm authentication, particularly with OIDC:
<function_calls>

#!/bin/bash

Check for semantic-release documentation or comments in the repo

echo "=== Checking for semantic-release docs/comments ==="
rg -i 'semantic.release|npm.publish' --type md --type txt 2>/dev/null | head -20

echo -e "\n=== Checking package.json for semantic-release plugins ==="
cat package.json 2>/dev/null | grep -E '(semantic|release|@semantic)' | head -20

echo -e "\n=== Checking if there's a .github/workflows directory with other configs ==="
ls -la .github/workflows/ 2>/dev/null

echo -e "\n=== Looking for any README or docs about publishing ==="
fd -name 'README*' -o -name 'CONTRIBUTING*' | xargs grep -l 'publish|release|npm' 2>/dev/null || echo "No release docs found"


</function_calls>

Now let me search for information about semantic-release npm plugin authentication:
<function_calls>

semantic-release npm plugin OIDC authentication 2024 2025

</function_calls>

<function_calls>

@semantic-release/npm provenance github actions authentication

</function_calls>

package.json (1)

53-55: publishConfig.provenance: true ties correctly into the provenance/OIDC setup

Enabling npm provenance via:

"publishConfig": {
  "provenance": true
}

is consistent with:

  • The release workflow’s permissions.id-token: write, and
  • The move to a modern Node/npm toolchain via .nvmrc and actions/setup-node@v6.

Once npm auth for @semantic-release/npm is confirmed (see release workflow comment), you should get signed provenance metadata on new publishes.

Comment thread .husky/pre-commit
@TobiTenno
TobiTenno merged commit 7072fbf into master Nov 29, 2025
14 checks passed
@TobiTenno
TobiTenno deleted the TobiTenno-patch-1 branch November 29, 2025 05:42
@wfcd-bot-boi

Copy link
Copy Markdown

🎉 This PR is included in version 1.3.4 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants