Skip to content

ci: migrate scan-plugins.yml to Workload Identity Federation auth#248

Merged
zenexer-ant merged 2 commits into
mainfrom
zenexer/scan-plugins-wif
May 24, 2026
Merged

ci: migrate scan-plugins.yml to Workload Identity Federation auth#248
zenexer-ant merged 2 commits into
mainfrom
zenexer/scan-plugins-wif

Conversation

@zenexer-ant
Copy link
Copy Markdown
Contributor

Replaces the static ANTHROPIC_API_KEY repo secret with Workload Identity Federation in scan-plugins.yml: the shared scan-plugins action mints a GitHub OIDC token and the claude CLI exchanges it for a short-lived bearer.

Depends on anthropics/claude-plugins-community#34 (adds anthropic-federation-rule-id etc. inputs to the shared action). Pinned to that PR's head e8411e8; will re-pin to a main-branch SHA once #34 merges. Draft until then.

  • Adds permissions: id-token: write.
  • The federation rule is bound to this repository (repository_id-pinned), so the IDs are repo-specific.
  • Drops the Require ANTHROPIC_API_KEY fail-closed guard — the WIF inputs are literal, so the action's skip-if-no-auth path can't trigger.
  • Updates the prompt-injection defense-in-depth comment: with WIF the process env carries a short-lived (masked) JWT and exchanged bearer rather than a long-lived sk-ant- key, bounding exfil blast radius. The sk-ant- scrubber stays as defense-in-depth.

Once #34 + this merge, the ANTHROPIC_API_KEY repo secret can be removed.

Replaces the static ANTHROPIC_API_KEY repo secret with Workload
Identity Federation: the scan-plugins shared action mints a GitHub
OIDC token (id-token: write) and the claude CLI exchanges it for a
short-lived bearer. The federation rule is bound to this repository
(repository_id-pinned).

Depends on anthropics/claude-plugins-community#34 (adds the WIF
inputs to the shared action). Pinned to that PR's head SHA; will
re-pin to a main-branch SHA once #34 merges.

Drops the 'Require ANTHROPIC_API_KEY' fail-closed guard — the WIF
inputs are literal in this file, so the action's skip-if-no-auth
path can't trigger. Updates the prompt-injection security comment
to reflect the short-lived bearer model.
claude-plugins-community#34 merged at e85f0d65b4fc87f07862e1dcdc467950514414ec — re-pinning from
the PR head SHA to the squash-merge commit on main so the pin survives
any future branch GC.
@zenexer-ant zenexer-ant marked this pull request as ready for review May 24, 2026 20:55
@zenexer-ant
Copy link
Copy Markdown
Contributor Author

Re-pinned to e85f0d65 (cpc#34 squash-merge commit on main) and undrafted. cpc#34 merged 20:50Z.

@zenexer-ant
Copy link
Copy Markdown
Contributor Author

/approve c9c5309

Copy link
Copy Markdown

@lewmacd lewmacd left a comment

Choose a reason for hiding this comment

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

WIF-migration ✅ — scan-plugins.yml: add id-token: write + switch the scan-plugins action from the ANTHROPIC_API_KEY secret to Workload Identity Federation (GitHub OIDC + literal federation IDs), dropping the now-moot fail-closed API-key guard. Same note as cpo#1991: pinned to the unmerged claude-plugins-community#34 SHA with a re-pin-after-merge TODO. LGTM.

@zenexer-ant zenexer-ant merged commit f2c8f30 into main May 24, 2026
1 check passed
@zenexer-ant zenexer-ant deleted the zenexer/scan-plugins-wif branch May 24, 2026 21:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants