Skip to content

Diagnose npm OIDC failures without publishing - #8582

Merged
gonzaloriestra merged 3 commits into
mainfrom
gonzalo/snapit-oidc-diagnostics
Sep 18, 2026
Merged

gonzaloriestra merged 3 commits into
mainfrom
gonzalo/snapit-oidc-diagnostics

Conversation

@gonzaloriestra

@gonzaloriestra gonzaloriestra commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

WHY are these changes introduced?

Snapit receives 404: OIDC token exchange error - package not found, while a manual nightly from the same commit and actor publishes successfully. Existing logs do not expose the npm identity claims needed to explain the difference.

WHAT is this pull request doing?

Record the public signing-key ID, the identity fields used to match the trusted publisher, and the event type, then test the token exchange directly in the Snapit and nightly jobs. The signed GitHub token is masked, and registry response bodies are discarded without reading them. Actor IDs, enterprise details, and token timestamps are omitted. Diagnostic failures do not block publishing.

Add /snapit-oidc and a manual diagnostics_only input so the comparison can run without publishing packages or posting comments.

Validated YAML parsing and simulated successful/rejected exchanges, including checks that credentials and unlisted claims are not logged.

Post-release steps

Compare a /snapit-oidc run with a manual run using diagnostics_only: true on main. Remove the temporary diagnostics after identifying the rejection.

Checklist

  • I've considered possible cross-platform impacts (Mac, Linux, Windows)
  • I've considered possible documentation changes
  • I've considered analytics changes to measure impact
  • The change is user-facing — I've identified the correct bump type (patch for bug fixes · minor for new features · major for breaking changes) and added a changeset with pnpm changeset add

@gonzaloriestra
gonzaloriestra requested a review from a team as a code owner September 18, 2026 09:33
@github-actions github-actions Bot added the no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users. label Sep 18, 2026
@gonzaloriestra
gonzaloriestra added this pull request to the merge queue Sep 18, 2026
Merged via the queue into main with commit 4fd2b24 Sep 18, 2026
30 checks passed
@gonzaloriestra
gonzaloriestra deleted the gonzalo/snapit-oidc-diagnostics branch September 18, 2026 10:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants