MarshallOfSound

#51051: build: authenticate sudowoodo /token exchange via Actions OIDC

Merged
Created: Apr 14, 2026, 5:09:39 PM
Merged: Apr 14, 2026, 5:54:45 PM
9 comments
Target: main

Sudowoodo's /token endpoint (electron/sudowoodo#375) now validates the caller via a GitHub Actions OIDC token instead of the static SUDOWOODO_EXCHANGE_TOKEN secret. The broker checks the token's repository/ref/workflow_ref/actor/event_name/run_id claims against its allowlist and additionally verifies the run_id belongs to an active sudowoodo-dispatched release before minting a scoped upload token.

  • script/release/github-token.ts: mint an OIDC token with audience sudowoodo-broker via the raw ACTIONS_ID_TOKEN_REQUEST_URL/_TOKEN env (so it works from any node script) and send it as Authorization: Bearer <jwt>. Fails with a clear message if the job lacks id-token: write. ELECTRON_GITHUB_TOKEN fallback kept.
  • pipeline-segment-electron-build.yml (→ autogenerated -publish.yml): drop SUDOWOODO_EXCHANGE_TOKEN from the env block. SUDOWOODO_EXCHANGE_URL stays.

id-token: write was already present on the publish segment's job (for attestations) and on every {linux,macos,windows}-publish.yml caller, so no permission additions were needed.


Notes: none

Backports

39-x-y
Merged
PR Number
#51055
Merged At
Apr 14, 2026, 10:44:22 PM
Released In
Not yet
Release Date
Not yet
40-x-y
Merged
PR Number
#51054
Merged At
Apr 14, 2026, 10:44:16 PM
Released In
Not yet
Release Date
Not yet
41-x-y
Merged
PR Number
#51053
Merged At
Apr 14, 2026, 10:44:11 PM
Released In
Not yet
Release Date
Not yet
42-x-y
Merged
PR Number
#51052
Merged At
Apr 14, 2026, 10:44:07 PM
Released In
Not yet
Release Date
Not yet

Semver Impact

Major
Breaking changes
Minor
New features
Patch
Bug fixes
None
Docs, tests, etc.

Semantic Versioning helps users understand the impact of updates:

  • Major (X.y.z): Breaking changes that may require code modifications
  • Minor (x.Y.z): New features that maintain backward compatibility
  • Patch (x.y.Z): Bug fixes that don't change the API
  • None: Changes that don't affect using facing parts of Electron