fix: share one exchanged WIF credential across spawned Claude processes - #1407
Conversation
GitHub OIDC tokens are single-use at the Anthropic token-exchange endpoint (the same jti cannot be exchanged twice). With plugins configured, the action spawns several short-lived claude processes (plugin marketplace add, one plugin install per plugin, then the main query). Each resolved federation from bare env vars and exchanged the same identity-token file independently: the first exchange succeeded and every later process got 401 (jti_reused), which the main query retried for ~3 minutes before failing the job. The SDK only enables its on-disk credentials cache when federation is loaded from a profile config file, not from bare env vars. Write a profile pointing at the identity-token file and select it via ANTHROPIC_CONFIG_DIR / ANTHROPIC_PROFILE so the first process exchanges once and the rest reuse the cached access token. The env vars are kept as a fallback for CLIs that predate profile support.
ashwin-ant
left a comment
There was a problem hiding this comment.
Nice find, and the diagnosis holds up. buildProvider in @anthropic-ai/sdk/lib/credentials/credential-chain.mjs only wraps the exchange in cachedExchangeProvider when a credentials_path is set, and that only happens for file-backed configs. So env vars can't share a token across processes and a profile can. Your profile also matches AnthropicConfig exactly.
Two changes before merge.
The cache path needs a config discriminator. configDir is a constant under RUNNER_TEMP, which is per-job, but the federation rule / org / workspace inputs are per-step. cachedExchangeProvider reuses a cached token based on expires_at alone, with no fingerprint of the config that minted it, and the workspace is bound at mint time. So two steps in one job with different workspaces will silently reuse the first step's token: wrong scope, wrong billing, no error. Today's uncached path exchanges fresh each step and gets this right, so it's a regression. The SDK comment right above the cache says this is exactly why env-only configs skip it. Hashing federation_rule_id + organization_id + workspace_id + base_url into the config dir name fixes it.
Don't clobber an operator-set ANTHROPIC_PROFILE / ANTHROPIC_CONFIG_DIR. You flag this under limitations, but it's free to fix rather than a tradeoff: if ANTHROPIC_PROFILE is already set, the disk cache is already on, so just core.warning() and skip writeFederationProfile. Same shape as the ANTHROPIC_API_KEY guard above it. Worth a test.
Smaller stuff:
workspace_id,base_url, andservice_account_idlook redundant.loadConfiggap-fills them from env for file-backed profiles, and the resolved base URL prefers the env var anyway.{ version, authentication: { type: "oidc_federation" } }should do it.stop()couldrmSyncthe token dir, so the exchanged token doesn't outlive the step.- Worth a docstring line that this depends on the plugin subprocesses spawning sequentially.
cachedExchangeProviderisn't cross-process serialized, and its "exchanges are idempotent" assumption is what single-usejtibreaks. Parallelize that loop later and the bug comes back.
One question. Single-use jti is server side and I can't confirm it from the client. Your mock assumes it and the Console events point that way, but let me check with the token exchange owners before we call this a correctness fix. If reuse is allowed it's still worth landing, just as a latency fix, and the description should say so.
Address review feedback on the shared-credentials-cache fix: - Embed a fingerprint of the federation inputs (rule, org, service account, workspace, base URL, scope) in the config dir name. The SDK cache reuses a token on expires_at alone and RUNNER_TEMP is per-job, so a later step with different federation inputs would silently reuse the first step's token. service_account_id and scope are included beyond the reviewed list because both are sent in the exchange request body and change which credential is minted. - Skip the action-managed profile with a warning when the operator has already set ANTHROPIC_CONFIG_DIR or ANTHROPIC_PROFILE. - Shrink the profile to the minimal file-backed form; the CLI's bundled SDK gap-fills the federation fields from the env vars the action already exports (verified against the pinned 2.1.173 binary). - Remove the token dir in stop() so the identity token and the cached exchanged credential don't outlive the step. - Document that cache sharing relies on the plugin subprocesses spawning sequentially.
|
@ashwin-ant Hi, thank you for your kind review. All four changes are in: 34d3228 Config discriminator. The config dir is now Operator-set Minimal profile. It is now exactly: {
"version": "1.0",
"authentication": {
"type": "oidc_federation"
}
}Before shrinking it, I verified that the gap-fill exists in the CLI version pinned by this action (
Docstring. I added the sequential-spawn dependency note to On the
|
…updates [skip ci] Bumps the github-actions group with 6 updates in the / directory: | Package | From | To | | --- | --- | --- | | [actions/checkout](https://github.com/actions/checkout) | `7.0.0` | `7.0.1` | | [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action) | `1.0.178` | `1.0.183` | | [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) | `4.37.1` | `4.37.3` | | [docker/login-action](https://github.com/docker/login-action) | `4.4.0` | `4.5.1` | | [github/codeql-action/init](https://github.com/github/codeql-action) | `4.37.1` | `4.37.3` | | [github/codeql-action/analyze](https://github.com/github/codeql-action) | `4.37.1` | `4.37.3` | Updates `actions/checkout` from 7.0.0 to 7.0.1 Release notes *Sourced from [actions/checkout's releases](https://github.com/actions/checkout/releases).* > v7.0.1 > ------ > > What's Changed > -------------- > > * skip running unsafe pr check if input is default by [`@aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2518](https://redirect.github.com/actions/checkout/pull/2518) > * trim only ascii whitespace for branch by [`@aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2521](https://redirect.github.com/actions/checkout/pull/2521) > * escape values passed to --unset by [`@aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2530](https://redirect.github.com/actions/checkout/pull/2530) > * Various dependency updates > > **Full Changelog**: <actions/checkout@v7...v7.0.1> Changelog *Sourced from [actions/checkout's changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md).* > Changelog > ========= > > v7.0.1 > ------ > > * Skip running unsafe pr check if input is default by [`@aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2518](https://redirect.github.com/actions/checkout/pull/2518) > * Trim only ascii whitespace for branch by [`@aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2521](https://redirect.github.com/actions/checkout/pull/2521) > * Escape values passed to --unset by [`@aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2530](https://redirect.github.com/actions/checkout/pull/2530) > * Various dependency updates > > v7.0.0 > ------ > > * Block checking out fork PR for pull\_request\_target and workflow\_run by [`@aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2454](https://redirect.github.com/actions/checkout/pull/2454) > * Various dependency updates > > v6.0.3 > ------ > > * Fix checkout init for SHA-256 repositories by [`@yaananth`](https://github.com/yaananth) in [actions/checkout#2439](https://redirect.github.com/actions/checkout/pull/2439) > * fix: expand merge commit SHA regex and add SHA-256 test cases by [`@yaananth`](https://github.com/yaananth) in [actions/checkout#2414](https://redirect.github.com/actions/checkout/pull/2414) > > v6.0.2 > ------ > > * Fix tag handling: preserve annotations and explicit fetch-tags by [`@ericsciple`](https://github.com/ericsciple) in [actions/checkout#2356](https://redirect.github.com/actions/checkout/pull/2356) > > v6.0.1 > ------ > > * Add worktree support for persist-credentials includeIf by [`@ericsciple`](https://github.com/ericsciple) in [actions/checkout#2327](https://redirect.github.com/actions/checkout/pull/2327) > > v6.0.0 > ------ > > * Persist creds to a separate file by [`@ericsciple`](https://github.com/ericsciple) in [actions/checkout#2286](https://redirect.github.com/actions/checkout/pull/2286) > * Update README to include Node.js 24 support details and requirements by [`@salmanmkc`](https://github.com/salmanmkc) in [actions/checkout#2248](https://redirect.github.com/actions/checkout/pull/2248) > > v5.0.1 > ------ > > * Port v6 cleanup to v5 by [`@ericsciple`](https://github.com/ericsciple) in [actions/checkout#2301](https://redirect.github.com/actions/checkout/pull/2301) > > v5.0.0 > ------ > > * Update actions checkout to use node 24 by [`@salmanmkc`](https://github.com/salmanmkc) in [actions/checkout#2226](https://redirect.github.com/actions/checkout/pull/2226) > > v4.3.1 > ------ > > * Port v6 cleanup to v4 by [`@ericsciple`](https://github.com/ericsciple) in [actions/checkout#2305](https://redirect.github.com/actions/checkout/pull/2305) > > v4.3.0 > ------ > > * docs: update README.md by [`@motss`](https://github.com/motss) in [actions/checkout#1971](https://redirect.github.com/actions/checkout/pull/1971) > * Add internal repos for checking out multiple repositories by [`@mouismail`](https://github.com/mouismail) in [actions/checkout#1977](https://redirect.github.com/actions/checkout/pull/1977) > * Documentation update - add recommended permissions to Readme by [`@benwells`](https://github.com/benwells) in [actions/checkout#2043](https://redirect.github.com/actions/checkout/pull/2043) > * Adjust positioning of user email note and permissions heading by [`@joshmgross`](https://github.com/joshmgross) in [actions/checkout#2044](https://redirect.github.com/actions/checkout/pull/2044) > * Update README.md by [`@nebuk89`](https://github.com/nebuk89) in [actions/checkout#2194](https://redirect.github.com/actions/checkout/pull/2194) > * Update CODEOWNERS for actions by [`@TingluoHuang`](https://github.com/TingluoHuang) in [actions/checkout#2224](https://redirect.github.com/actions/checkout/pull/2224) > * Update package dependencies by [`@salmanmkc`](https://github.com/salmanmkc) in [actions/checkout#2236](https://redirect.github.com/actions/checkout/pull/2236) > > v4.2.2 > ------ > > * `url-helper.ts` now leverages well-known environment variables by [`@jww3`](https://github.com/jww3) in [actions/checkout#1941](https://redirect.github.com/actions/checkout/pull/1941) > * Expand unit test coverage for `isGhes` by [`@jww3`](https://github.com/jww3) in [actions/checkout#1946](https://redirect.github.com/actions/checkout/pull/1946) > > v4.2.1 > ------ > > * Check out other refs/\* by commit if provided, fall back to ref by [`@orhantoy`](https://github.com/orhantoy) in [actions/checkout#1924](https://redirect.github.com/actions/checkout/pull/1924) ... (truncated) Commits * [`3d3c42e`](actions/checkout@3d3c42e) prep v7.0.1 release ([#2531](https://redirect.github.com/actions/checkout/issues/2531)) * [`2880268`](actions/checkout@2880268) escape values passed to --unset ([#2530](https://redirect.github.com/actions/checkout/issues/2530)) * [`12cd223`](actions/checkout@12cd223) trim only ascii whitespace for branch ([#2521](https://redirect.github.com/actions/checkout/issues/2521)) * [`62661c4`](actions/checkout@62661c4) skip running unsafe pr check if input is default ([#2518](https://redirect.github.com/actions/checkout/issues/2518)) * [`e8d4307`](actions/checkout@e8d4307) Bump the minor-actions-dependencies group with 2 updates ([#2499](https://redirect.github.com/actions/checkout/issues/2499)) * [`631c942`](actions/checkout@631c942) eslint 9 ([#2474](https://redirect.github.com/actions/checkout/issues/2474)) * [`4f1f4ae`](actions/checkout@4f1f4ae) Bump actions/upload-artifact from 4 to 7 ([#2476](https://redirect.github.com/actions/checkout/issues/2476)) * [`ba09753`](actions/checkout@ba09753) Bump actions/checkout from 6 to 7 ([#2488](https://redirect.github.com/actions/checkout/issues/2488)) * [`b9e0990`](actions/checkout@b9e0990) Bump docker/login-action from 3.3.0 to 4.2.0 ([#2479](https://redirect.github.com/actions/checkout/issues/2479)) * [`e8cb398`](actions/checkout@e8cb398) Bump docker/build-push-action from 6.5.0 to 7.2.0 ([#2478](https://redirect.github.com/actions/checkout/issues/2478)) * Additional commits viewable in [compare view](actions/checkout@9c091bb...3d3c42e) Updates `anthropics/claude-code-action` from 1.0.178 to 1.0.183 Release notes *Sourced from [anthropics/claude-code-action's releases](https://github.com/anthropics/claude-code-action/releases).* > v1.0.183 > -------- > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.183> > > v1.0.182 > -------- > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.182> > > v1.0.181 > -------- > > What's Changed > -------------- > > * fix: share one exchanged WIF credential across spawned Claude processes by [`@KeisukeYamashita`](https://github.com/KeisukeYamashita) in [anthropics/claude-code-action#1407](https://redirect.github.com/anthropics/claude-code-action/pull/1407) > > New Contributors > ---------------- > > * [`@KeisukeYamashita`](https://github.com/KeisukeYamashita) made their first contribution in [anthropics/claude-code-action#1407](https://redirect.github.com/anthropics/claude-code-action/pull/1407) > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.181> > > v1.0.180 > -------- > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.180> > > v1.0.179 > -------- > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.179> Commits * [`be7b93b`](anthropics/claude-code-action@be7b93b) chore: bump Claude Code to 2.1.220 and Agent SDK to 0.3.220 * [`e0cf66d`](anthropics/claude-code-action@e0cf66d) chore: bump Claude Code to 2.1.219 and Agent SDK to 0.3.219 * [`44423bd`](anthropics/claude-code-action@44423bd) chore: bump Claude Code to 2.1.218 and Agent SDK to 0.3.218 * [`b00a341`](anthropics/claude-code-action@b00a341) fix: share one exchanged WIF credential across spawned Claude processes ([#1407](https://redirect.github.com/anthropics/claude-code-action/issues/1407)) * [`fa7e2f0`](anthropics/claude-code-action@fa7e2f0) chore: bump Claude Code to 2.1.217 and Agent SDK to 0.3.217 * [`b76a077`](anthropics/claude-code-action@b76a077) chore: bump Claude Code to 2.1.216 and Agent SDK to 0.3.216 * See full diff in [compare view](anthropics/claude-code-action@af0559e...be7b93b) Updates `github/codeql-action/upload-sarif` from 4.37.1 to 4.37.3 Release notes *Sourced from [github/codeql-action/upload-sarif's releases](https://github.com/github/codeql-action/releases).* > v4.37.3 > ------- > > No user facing changes. > > v4.37.2 > ------- > > * The new address format for the `config-file` input that was introduced in CodeQL Action 4.37.0 is now enabled by default. In addition to the format described there, the `remote=` prefix can now be used to explicitly indicate that the input refers to a remote file. All previous input formats continue to be accepted as well. [#4023](https://redirect.github.com/github/codeql-action/pull/4023) > * The CodeQL Action can now make use of [configured private registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries) in Default Setup to retrieve CodeQL configuration files from remote repositories that require authentication. This will allow customers to store their CodeQL configuration in a single repository that can then be referenced by Default Setup workflows in other repositories. We expect to roll this and other, related changes out to everyone in July. [#4007](https://redirect.github.com/github/codeql-action/pull/4007) Changelog *Sourced from [github/codeql-action/upload-sarif's changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md).* > CodeQL Action Changelog > ======================= > > See the [releases page](https://github.com/github/codeql-action/releases) for the relevant changes to the CodeQL CLI and language packs. > > [UNRELEASED] > ------------ > > * This version of the CodeQL Action adds support for the `tools` input for the `codeql-action/init` step to be specified using a `github-codeql-tools` [repository property](https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization). This feature will gradually be rolled out following the release of this version. Once rolled out, this allows for the CodeQL CLI version that is used in GitHub-managed workflows, such as Default Setup, to be set to a custom value. For example, customers who run into issues with rate limits when a new CodeQL CLI version is released can set the value to `toolcache` to always use the CodeQL CLI version that is available in the runner toolcache. For Advanced Setup workflows, the value provided for `tools` in the workflow definition always takes precedence unless the value of the repository property starts with `!`. [#4037](https://redirect.github.com/github/codeql-action/pull/4037) > > 4.37.3 - 22 Jul 2026 > -------------------- > > No user facing changes. > > 4.37.2 - 21 Jul 2026 > -------------------- > > * The new address format for the `config-file` input that was introduced in CodeQL Action 4.37.0 is now enabled by default. In addition to the format described there, the `remote=` prefix can now be used to explicitly indicate that the input refers to a remote file. All previous input formats continue to be accepted as well. [#4023](https://redirect.github.com/github/codeql-action/pull/4023) > * The CodeQL Action can now make use of [configured private registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries) in Default Setup to retrieve CodeQL configuration files from remote repositories that require authentication. This will allow customers to store their CodeQL configuration in a single repository that can then be referenced by Default Setup workflows in other repositories. We expect to roll this and other, related changes out to everyone in July. [#4007](https://redirect.github.com/github/codeql-action/pull/4007) > > 4.37.1 - 16 Jul 2026 > -------------------- > > * *Upcoming breaking change*: Add a deprecation warning for customers using CodeQL version 2.20.6 and earlier. These versions of CodeQL were discontinued on 1 July 2026 alongside GitHub Enterprise Server 3.16, and will be unsupported by the next minor release of the CodeQL Action. [#3956](https://redirect.github.com/github/codeql-action/pull/3956) > * Update default CodeQL bundle version to [2.26.1](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.26.1). [#4019](https://redirect.github.com/github/codeql-action/pull/4019) > > 4.37.0 - 08 Jul 2026 > -------------------- > > * Update default CodeQL bundle version to [2.26.0](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.26.0). [#3995](https://redirect.github.com/github/codeql-action/pull/3995) > * In addition to the existing input format, the `config-file` input for the `codeql-action/init` step will soon support a new `[owner/]repo[@ref][:path]` format. All components except the repository name are optional. If omitted, `owner` defaults to the same owner as the repository the analysis is running for, `ref` to `main`, and `path` to `.github/codeql-action.yaml`. Support for this format ships in this version of the CodeQL Action, but will only be enabled over the coming weeks. [#3973](https://redirect.github.com/github/codeql-action/pull/3973) > > 4.36.3 - 01 Jul 2026 > -------------------- > > No user facing changes. > > 4.36.2 - 04 Jun 2026 > -------------------- > > * Cache CodeQL CLI version information across Actions steps. [#3943](https://redirect.github.com/github/codeql-action/pull/3943) > * Reduce requests while waiting for analysis processing by using exponential backoff when polling SARIF processing status. [#3937](https://redirect.github.com/github/codeql-action/pull/3937) > * Update default CodeQL bundle version to [2.25.6](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.6). [#3948](https://redirect.github.com/github/codeql-action/pull/3948) > > 4.36.1 - 02 Jun 2026 > -------------------- > > No user facing changes. > > 4.36.0 - 22 May 2026 > -------------------- > > * *Breaking change*: Bump the minimum required CodeQL bundle version to 2.19.4. [#3894](https://redirect.github.com/github/codeql-action/pull/3894) > * Add support for SHA-256 Git object IDs. [#3893](https://redirect.github.com/github/codeql-action/pull/3893) > * Update default CodeQL bundle version to [2.25.5](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.5). [#3926](https://redirect.github.com/github/codeql-action/pull/3926) > > 4.35.5 - 15 May 2026 > -------------------- > > * We have improved how the JavaScript bundles for the CodeQL Action are generated to avoid duplication across bundles and reduce the size of the repository by around 70%. This should have no effect on the runtime behaviour of the CodeQL Action. [#3899](https://redirect.github.com/github/codeql-action/pull/3899) ... (truncated) Commits * [`e4fba86`](github/codeql-action@e4fba86) Merge pull request [#4031](https://redirect.github.com/github/codeql-action/issues/4031) from github/update-v4.37.3-72f6a9da0 * [`fb50ab5`](github/codeql-action@fb50ab5) Update changelog for v4.37.3 * [`72f6a9d`](github/codeql-action@72f6a9d) Merge pull request [#4030](https://redirect.github.com/github/codeql-action/issues/4030) from github/mbg/fix/no-proxy * [`3b5ee58`](github/codeql-action@3b5ee58) Use default `request` options instead of `undefined` * [`bfb6be4`](github/codeql-action@bfb6be4) Merge pull request [#4028](https://redirect.github.com/github/codeql-action/issues/4028) from github/mergeback/v4.37.2-to-main-e0647621 * [`526ab84`](github/codeql-action@526ab84) Rebuild * [`d6217b9`](github/codeql-action@d6217b9) Update changelog and version after v4.37.2 * [`e064762`](github/codeql-action@e064762) Merge pull request [#4027](https://redirect.github.com/github/codeql-action/issues/4027) from github/update-v4.37.2-385bcdc5a * [`e0faed8`](github/codeql-action@e0faed8) Add a couple of change notes * [`73aad0e`](github/codeql-action@73aad0e) Update changelog for v4.37.2 * Additional commits viewable in [compare view](github/codeql-action@7188fc3...e4fba86) Updates `docker/login-action` from 4.4.0 to 4.5.1 Release notes *Sourced from [docker/login-action's releases](https://github.com/docker/login-action/releases).* > v4.5.1 > ------ > > * Support `dhi.io` as Docker Hub OIDC registry by [`@crazy-max`](https://github.com/crazy-max) in [docker/login-action#1054](https://redirect.github.com/docker/login-action/pull/1054) > > **Full Changelog**: <docker/login-action@v4.5.0...v4.5.1> > > v4.5.0 > ------ > > * [Docker Hub OIDC](https://github.com/docker/login-action#docker-hub) login support by [`@crazy-max`](https://github.com/crazy-max) in [docker/login-action#1048](https://redirect.github.com/docker/login-action/pull/1048) > * Bump `@aws-sdk/client-ecr` and `@aws-sdk/client-ecr-public` to 3.1091.0 in [docker/login-action#1037](https://redirect.github.com/docker/login-action/pull/1037) > * Bump `@docker/actions-toolkit` from 0.92.0 to 0.94.0 in [docker/login-action#1044](https://redirect.github.com/docker/login-action/pull/1044) [docker/login-action#1050](https://redirect.github.com/docker/login-action/pull/1050) > * Bump brace-expansion from 1.1.13 to 1.1.16 in [docker/login-action#1046](https://redirect.github.com/docker/login-action/pull/1046) > * Bump js-yaml from 5.2.0 to 5.2.1 in [docker/login-action#1038](https://redirect.github.com/docker/login-action/pull/1038) > > **Full Changelog**: <docker/login-action@v4.4.0...v4.5.0> Commits * [`abd2ef4`](docker/login-action@abd2ef4) Merge pull request [#1055](https://redirect.github.com/docker/login-action/issues/1055) from crazy-max/test-registry-auth-oidc * [`d49d3a9`](docker/login-action@d49d3a9) Merge pull request [#1054](https://redirect.github.com/docker/login-action/issues/1054) from crazy-max/oidc-missing-dhi * [`b58b17c`](docker/login-action@b58b17c) test: cover Docker Hub OIDC with registry-auth * [`be646c2`](docker/login-action@be646c2) chore: update generated content * [`d77c059`](docker/login-action@d77c059) support dhi.io as Docker Hub OIDC registry * [`06fb636`](docker/login-action@06fb636) Merge pull request [#1037](https://redirect.github.com/docker/login-action/issues/1037) from docker/dependabot/npm\_and\_yarn/aws-sdk-dependen... * [`a8bc953`](docker/login-action@a8bc953) [dependabot skip] chore: update generated content * [`f54b901`](docker/login-action@f54b901) build(deps): bump the aws-sdk-dependencies group across 1 directory with 2 up... * [`77f18f6`](docker/login-action@77f18f6) Merge pull request [#1049](https://redirect.github.com/docker/login-action/issues/1049) from docker/dependabot/github\_actions/codeql-actions... * [`ec0bf28`](docker/login-action@ec0bf28) Merge pull request [#1050](https://redirect.github.com/docker/login-action/issues/1050) from docker/dependabot/npm\_and\_yarn/docker/actions-t... * Additional commits viewable in [compare view](docker/login-action@af1e73f...abd2ef4) Updates `github/codeql-action/init` from 4.37.1 to 4.37.3 Release notes *Sourced from [github/codeql-action/init's releases](https://github.com/github/codeql-action/releases).* > v4.37.3 > ------- > > No user facing changes. > > v4.37.2 > ------- > > * The new address format for the `config-file` input that was introduced in CodeQL Action 4.37.0 is now enabled by default. In addition to the format described there, the `remote=` prefix can now be used to explicitly indicate that the input refers to a remote file. All previous input formats continue to be accepted as well. [#4023](https://redirect.github.com/github/codeql-action/pull/4023) > * The CodeQL Action can now make use of [configured private registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries) in Default Setup to retrieve CodeQL configuration files from remote repositories that require authentication. This will allow customers to store their CodeQL configuration in a single repository that can then be referenced by Default Setup workflows in other repositories. We expect to roll this and other, related changes out to everyone in July. [#4007](https://redirect.github.com/github/codeql-action/pull/4007) Changelog *Sourced from [github/codeql-action/init's changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md).* > CodeQL Action Changelog > ======================= > > See the [releases page](https://github.com/github/codeql-action/releases) for the relevant changes to the CodeQL CLI and language packs. > > [UNRELEASED] > ------------ > > * This version of the CodeQL Action adds support for the `tools` input for the `codeql-action/init` step to be specified using a `github-codeql-tools` [repository property](https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization). This feature will gradually be rolled out following the release of this version. Once rolled out, this allows for the CodeQL CLI version that is used in GitHub-managed workflows, such as Default Setup, to be set to a custom value. For example, customers who run into issues with rate limits when a new CodeQL CLI version is released can set the value to `toolcache` to always use the CodeQL CLI version that is available in the runner toolcache. For Advanced Setup workflows, the value provided for `tools` in the workflow definition always takes precedence unless the value of the repository property starts with `!`. [#4037](https://redirect.github.com/github/codeql-action/pull/4037) > > 4.37.3 - 22 Jul 2026 > -------------------- > > No user facing changes. > > 4.37.2 - 21 Jul 2026 > -------------------- > > * The new address format for the `config-file` input that was introduced in CodeQL Action 4.37.0 is now enabled by default. In addition to the format described there, the `remote=` prefix can now be used to explicitly indicate that the input refers to a remote file. All previous input formats continue to be accepted as well. [#4023](https://redirect.github.com/github/codeql-action/pull/4023) > * The CodeQL Action can now make use of [configured private registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries) in Default Setup to retrieve CodeQL configuration files from remote repositories that require authentication. This will allow customers to store their CodeQL configuration in a single repository that can then be referenced by Default Setup workflows in other repositories. We expect to roll this and other, related changes out to everyone in July. [#4007](https://redirect.github.com/github/codeql-action/pull/4007) > > 4.37.1 - 16 Jul 2026 > -------------------- > > * *Upcoming breaking change*: Add a deprecation warning for customers using CodeQL version 2.20.6 and earlier. These versions of CodeQL were discontinued on 1 July 2026 alongside GitHub Enterprise Server 3.16, and will be unsupported by the next minor release of the CodeQL Action. [#3956](https://redirect.github.com/github/codeql-action/pull/3956) > * Update default CodeQL bundle version to [2.26.1](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.26.1). [#4019](https://redirect.github.com/github/codeql-action/pull/4019) > > 4.37.0 - 08 Jul 2026 > -------------------- > > * Update default CodeQL bundle version to [2.26.0](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.26.0). [#3995](https://redirect.github.com/github/codeql-action/pull/3995) > * In addition to the existing input format, the `config-file` input for the `codeql-action/init` step will soon support a new `[owner/]repo[@ref][:path]` format. All components except the repository name are optional. If omitted, `owner` defaults to the same owner as the repository the analysis is running for, `ref` to `main`, and `path` to `.github/codeql-action.yaml`. Support for this format ships in this version of the CodeQL Action, but will only be enabled over the coming weeks. [#3973](https://redirect.github.com/github/codeql-action/pull/3973) > > 4.36.3 - 01 Jul 2026 > -------------------- > > No user facing changes. > > 4.36.2 - 04 Jun 2026 > -------------------- > > * Cache CodeQL CLI version information across Actions steps. [#3943](https://redirect.github.com/github/codeql-action/pull/3943) > * Reduce requests while waiting for analysis processing by using exponential backoff when polling SARIF processing status. [#3937](https://redirect.github.com/github/codeql-action/pull/3937) > * Update default CodeQL bundle version to [2.25.6](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.6). [#3948](https://redirect.github.com/github/codeql-action/pull/3948) > > 4.36.1 - 02 Jun 2026 > -------------------- > > No user facing changes. > > 4.36.0 - 22 May 2026 > -------------------- > > * *Breaking change*: Bump the minimum required CodeQL bundle version to 2.19.4. [#3894](https://redirect.github.com/github/codeql-action/pull/3894) > * Add support for SHA-256 Git object IDs. [#3893](https://redirect.github.com/github/codeql-action/pull/3893) > * Update default CodeQL bundle version to [2.25.5](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.5). [#3926](https://redirect.github.com/github/codeql-action/pull/3926) > > 4.35.5 - 15 May 2026 > -------------------- > > * We have improved how the JavaScript bundles for the CodeQL Action are generated to avoid duplication across bundles and reduce the size of the repository by around 70%. This should have no effect on the runtime behaviour of the CodeQL Action. [#3899](https://redirect.github.com/github/codeql-action/pull/3899) ... (truncated) Commits * [`e4fba86`](github/codeql-action@e4fba86) Merge pull request [#4031](https://redirect.github.com/github/codeql-action/issues/4031) from github/update-v4.37.3-72f6a9da0 * [`fb50ab5`](github/codeql-action@fb50ab5) Update changelog for v4.37.3 * [`72f6a9d`](github/codeql-action@72f6a9d) Merge pull request [#4030](https://redirect.github.com/github/codeql-action/issues/4030) from github/mbg/fix/no-proxy * [`3b5ee58`](github/codeql-action@3b5ee58) Use default `request` options instead of `undefined` * [`bfb6be4`](github/codeql-action@bfb6be4) Merge pull request [#4028](https://redirect.github.com/github/codeql-action/issues/4028) from github/mergeback/v4.37.2-to-main-e0647621 * [`526ab84`](github/codeql-action@526ab84) Rebuild * [`d6217b9`](github/codeql-action@d6217b9) Update changelog and version after v4.37.2 * [`e064762`](github/codeql-action@e064762) Merge pull request [#4027](https://redirect.github.com/github/codeql-action/issues/4027) from github/update-v4.37.2-385bcdc5a * [`e0faed8`](github/codeql-action@e0faed8) Add a couple of change notes * [`73aad0e`](github/codeql-action@73aad0e) Update changelog for v4.37.2 * Additional commits viewable in [compare view](github/codeql-action@7188fc3...e4fba86) Updates `github/codeql-action/analyze` from 4.37.1 to 4.37.3 Release notes *Sourced from [github/codeql-action/analyze's releases](https://github.com/github/codeql-action/releases).* > v4.37.3 > ------- > > No user facing changes. > > v4.37.2 > ------- > > * The new address format for the `config-file` input that was introduced in CodeQL Action 4.37.0 is now enabled by default. In addition to the format described there, the `remote=` prefix can now be used to explicitly indicate that the input refers to a remote file. All previous input formats continue to be accepted as well. [#4023](https://redirect.github.com/github/codeql-action/pull/4023) > * The CodeQL Action can now make use of [configured private registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries) in Default Setup to retrieve CodeQL configuration files from remote repositories that require authentication. This will allow customers to store their CodeQL configuration in a single repository that can then be referenced by Default Setup workflows in other repositories. We expect to roll this and other, related changes out to everyone in July. [#4007](https://redirect.github.com/github/codeql-action/pull/4007) Changelog *Sourced from [github/codeql-action/analyze's changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md).* > CodeQL Action Changelog > ======================= > > See the [releases page](https://github.com/github/codeql-action/releases) for the relevant changes to the CodeQL CLI and language packs. > > [UNRELEASED] > ------------ > > * This version of the CodeQL Action adds support for the `tools` input for the `codeql-action/init` step to be specified using a `github-codeql-tools` [repository property](https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization). This feature will gradually be rolled out following the release of this version. Once rolled out, this allows for the CodeQL CLI version that is used in GitHub-managed workflows, such as Default Setup, to be set to a custom value. For example, customers who run into issues with rate limits when a new CodeQL CLI version is released can set the value to `toolcache` to always use the CodeQL CLI version that is available in the runner toolcache. For Advanced Setup workflows, the value provided for `tools` in the workflow definition always takes precedence unless the value of the repository property starts with `!`. [#4037](https://redirect.github.com/github/codeql-action/pull/4037) > > 4.37.3 - 22 Jul 2026 > -------------------- > > No user facing changes. > > 4.37.2 - 21 Jul 2026 > -------------------- > > * The new address format for the `config-file` input that was introduced in CodeQL Action 4.37.0 is now enabled by default. In addition to the format described there, the `remote=` prefix can now be used to explicitly indicate that the input refers to a remote file. All previous input formats continue to be accepted as well. [#4023](https://redirect.github.com/github/codeql-action/pull/4023) > * The CodeQL Action can now make use of [configured private registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries) in Default Setup to retrieve CodeQL configuration files from remote repositories that require authentication. This will allow customers to store their CodeQL configuration in a single repository that can then be referenced by Default Setup workflows in other repositories. We expect to roll this and other, related changes out to everyone in July. [#4007](https://redirect.github.com/github/codeql-action/pull/4007) > > 4.37.1 - 16 Jul 2026 > -------------------- > > * *Upcoming breaking change*: Add a deprecation warning for customers using CodeQL version 2.20.6 and earlier. These versions of CodeQL were discontinued on 1 July 2026 alongside GitHub Enterprise Server 3.16, and will be unsupported by the next minor release of the CodeQL Action. [#3956](https://redirect.github.com/github/codeql-action/pull/3956) > * Update default CodeQL bundle version to [2.26.1](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.26.1). [#4019](https://redirect.github.com/github/codeql-action/pull/4019) > > 4.37.0 - 08 Jul 2026 > -------------------- > > * Update default CodeQL bundle version to [2.26.0](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.26.0). [#3995](https://redirect.github.com/github/codeql-action/pull/3995) > * In addition to the existing input format, the `config-file` input for the `codeql-action/init` step will soon support a new `[owner/]repo[@ref][:path]` format. All components except the repository name are optional. If omitted, `owner` defaults to the same owner as the repository the analysis is running for, `ref` to `main`, and `path` to `.github/codeql-action.yaml`. Support for this format ships in this version of the CodeQL Action, but will only be enabled over the coming weeks. [#3973](https://redirect.github.com/github/codeql-action/pull/3973) > > 4.36.3 - 01 Jul 2026 > -------------------- > > No user facing changes. > > 4.36.2 - 04 Jun 2026 > -------------------- > > * Cache CodeQL CLI version information across Actions steps. [#3943](https://redirect.github.com/github/codeql-action/pull/3943) > * Reduce requests while waiting for analysis processing by using exponential backoff when polling SARIF processing status. [#3937](https://redirect.github.com/github/codeql-action/pull/3937) > * Update default CodeQL bundle version to [2.25.6](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.6). [#3948](https://redirect.github.com/github/codeql-action/pull/3948) > > 4.36.1 - 02 Jun 2026 > -------------------- > > No user facing changes. > > 4.36.0 - 22 May 2026 > -------------------- > > * *Breaking change*: Bump the minimum required CodeQL bundle version to 2.19.4. [#3894](https://redirect.github.com/github/codeql-action/pull/3894) > * Add support for SHA-256 Git object IDs. [#3893](https://redirect.github.com/github/codeql-action/pull/3893) > * Update default CodeQL bundle version to [2.25.5](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.5). [#3926](https://redirect.github.com/github/codeql-action/pull/3926) > > 4.35.5 - 15 May 2026 > -------------------- > > * We have improved how the JavaScript bundles for the CodeQL Action are generated to avoid duplication across bundles and reduce the size of the repository by around 70%. This should have no effect on the runtime behaviour of the CodeQL Action. [#3899](https://redirect.github.com/github/codeql-action/pull/3899) ... (truncated) Commits * [`e4fba86`](github/codeql-action@e4fba86) Merge pull request [#4031](https://redirect.github.com/github/codeql-action/issues/4031) from github/update-v4.37.3-72f6a9da0 * [`fb50ab5`](github/codeql-action@fb50ab5) Update changelog for v4.37.3 * [`72f6a9d`](github/codeql-action@72f6a9d) Merge pull request [#4030](https://redirect.github.com/github/codeql-action/issues/4030) from github/mbg/fix/no-proxy * [`3b5ee58`](github/codeql-action@3b5ee58) Use default `request` options instead of `undefined` * [`bfb6be4`](github/codeql-action@bfb6be4) Merge pull request [#4028](https://redirect.github.com/github/codeql-action/issues/4028) from github/mergeback/v4.37.2-to-main-e0647621 * [`526ab84`](github/codeql-action@526ab84) Rebuild * [`d6217b9`](github/codeql-action@d6217b9) Update changelog and version after v4.37.2 * [`e064762`](github/codeql-action@e064762) Merge pull request [#4027](https://redirect.github.com/github/codeql-action/issues/4027) from github/update-v4.37.2-385bcdc5a * [`e0faed8`](github/codeql-action@e0faed8) Add a couple of change notes * [`73aad0e`](github/codeql-action@73aad0e) Update changelog for v4.37.2 * Additional commits viewable in [compare view](github/codeql-action@7188fc3...e4fba86)
Bumps the github-actions group with 3 updates: [actions/checkout](https://github.com/actions/checkout), [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action) and [actions/setup-java](https://github.com/actions/setup-java). Updates `actions/checkout` from 7.0.0 to 7.0.1 Release notes *Sourced from [actions/checkout's releases](https://github.com/actions/checkout/releases).* > v7.0.1 > ------ > > What's Changed > -------------- > > * skip running unsafe pr check if input is default by [`@aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2518](https://redirect.github.com/actions/checkout/pull/2518) > * trim only ascii whitespace for branch by [`@aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2521](https://redirect.github.com/actions/checkout/pull/2521) > * escape values passed to --unset by [`@aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2530](https://redirect.github.com/actions/checkout/pull/2530) > * Various dependency updates > > **Full Changelog**: <actions/checkout@v7...v7.0.1> Changelog *Sourced from [actions/checkout's changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md).* > Changelog > ========= > > v7.0.1 > ------ > > * Skip running unsafe pr check if input is default by [`@aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2518](https://redirect.github.com/actions/checkout/pull/2518) > * Trim only ascii whitespace for branch by [`@aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2521](https://redirect.github.com/actions/checkout/pull/2521) > * Escape values passed to --unset by [`@aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2530](https://redirect.github.com/actions/checkout/pull/2530) > * Various dependency updates > > v7.0.0 > ------ > > * Block checking out fork PR for pull\_request\_target and workflow\_run by [`@aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2454](https://redirect.github.com/actions/checkout/pull/2454) > * Various dependency updates > > v6.0.3 > ------ > > * Fix checkout init for SHA-256 repositories by [`@yaananth`](https://github.com/yaananth) in [actions/checkout#2439](https://redirect.github.com/actions/checkout/pull/2439) > * fix: expand merge commit SHA regex and add SHA-256 test cases by [`@yaananth`](https://github.com/yaananth) in [actions/checkout#2414](https://redirect.github.com/actions/checkout/pull/2414) > > v6.0.2 > ------ > > * Fix tag handling: preserve annotations and explicit fetch-tags by [`@ericsciple`](https://github.com/ericsciple) in [actions/checkout#2356](https://redirect.github.com/actions/checkout/pull/2356) > > v6.0.1 > ------ > > * Add worktree support for persist-credentials includeIf by [`@ericsciple`](https://github.com/ericsciple) in [actions/checkout#2327](https://redirect.github.com/actions/checkout/pull/2327) > > v6.0.0 > ------ > > * Persist creds to a separate file by [`@ericsciple`](https://github.com/ericsciple) in [actions/checkout#2286](https://redirect.github.com/actions/checkout/pull/2286) > * Update README to include Node.js 24 support details and requirements by [`@salmanmkc`](https://github.com/salmanmkc) in [actions/checkout#2248](https://redirect.github.com/actions/checkout/pull/2248) > > v5.0.1 > ------ > > * Port v6 cleanup to v5 by [`@ericsciple`](https://github.com/ericsciple) in [actions/checkout#2301](https://redirect.github.com/actions/checkout/pull/2301) > > v5.0.0 > ------ > > * Update actions checkout to use node 24 by [`@salmanmkc`](https://github.com/salmanmkc) in [actions/checkout#2226](https://redirect.github.com/actions/checkout/pull/2226) > > v4.3.1 > ------ > > * Port v6 cleanup to v4 by [`@ericsciple`](https://github.com/ericsciple) in [actions/checkout#2305](https://redirect.github.com/actions/checkout/pull/2305) > > v4.3.0 > ------ > > * docs: update README.md by [`@motss`](https://github.com/motss) in [actions/checkout#1971](https://redirect.github.com/actions/checkout/pull/1971) > * Add internal repos for checking out multiple repositories by [`@mouismail`](https://github.com/mouismail) in [actions/checkout#1977](https://redirect.github.com/actions/checkout/pull/1977) > * Documentation update - add recommended permissions to Readme by [`@benwells`](https://github.com/benwells) in [actions/checkout#2043](https://redirect.github.com/actions/checkout/pull/2043) > * Adjust positioning of user email note and permissions heading by [`@joshmgross`](https://github.com/joshmgross) in [actions/checkout#2044](https://redirect.github.com/actions/checkout/pull/2044) > * Update README.md by [`@nebuk89`](https://github.com/nebuk89) in [actions/checkout#2194](https://redirect.github.com/actions/checkout/pull/2194) > * Update CODEOWNERS for actions by [`@TingluoHuang`](https://github.com/TingluoHuang) in [actions/checkout#2224](https://redirect.github.com/actions/checkout/pull/2224) > * Update package dependencies by [`@salmanmkc`](https://github.com/salmanmkc) in [actions/checkout#2236](https://redirect.github.com/actions/checkout/pull/2236) > > v4.2.2 > ------ > > * `url-helper.ts` now leverages well-known environment variables by [`@jww3`](https://github.com/jww3) in [actions/checkout#1941](https://redirect.github.com/actions/checkout/pull/1941) > * Expand unit test coverage for `isGhes` by [`@jww3`](https://github.com/jww3) in [actions/checkout#1946](https://redirect.github.com/actions/checkout/pull/1946) > > v4.2.1 > ------ > > * Check out other refs/\* by commit if provided, fall back to ref by [`@orhantoy`](https://github.com/orhantoy) in [actions/checkout#1924](https://redirect.github.com/actions/checkout/pull/1924) ... (truncated) Commits * [`3d3c42e`](actions/checkout@3d3c42e) prep v7.0.1 release ([#2531](https://redirect.github.com/actions/checkout/issues/2531)) * [`2880268`](actions/checkout@2880268) escape values passed to --unset ([#2530](https://redirect.github.com/actions/checkout/issues/2530)) * [`12cd223`](actions/checkout@12cd223) trim only ascii whitespace for branch ([#2521](https://redirect.github.com/actions/checkout/issues/2521)) * [`62661c4`](actions/checkout@62661c4) skip running unsafe pr check if input is default ([#2518](https://redirect.github.com/actions/checkout/issues/2518)) * [`e8d4307`](actions/checkout@e8d4307) Bump the minor-actions-dependencies group with 2 updates ([#2499](https://redirect.github.com/actions/checkout/issues/2499)) * [`631c942`](actions/checkout@631c942) eslint 9 ([#2474](https://redirect.github.com/actions/checkout/issues/2474)) * [`4f1f4ae`](actions/checkout@4f1f4ae) Bump actions/upload-artifact from 4 to 7 ([#2476](https://redirect.github.com/actions/checkout/issues/2476)) * [`ba09753`](actions/checkout@ba09753) Bump actions/checkout from 6 to 7 ([#2488](https://redirect.github.com/actions/checkout/issues/2488)) * [`b9e0990`](actions/checkout@b9e0990) Bump docker/login-action from 3.3.0 to 4.2.0 ([#2479](https://redirect.github.com/actions/checkout/issues/2479)) * [`e8cb398`](actions/checkout@e8cb398) Bump docker/build-push-action from 6.5.0 to 7.2.0 ([#2478](https://redirect.github.com/actions/checkout/issues/2478)) * Additional commits viewable in [compare view](actions/checkout@9c091bb...3d3c42e) Updates `anthropics/claude-code-action` from 1.0.171 to 1.0.183 Release notes *Sourced from [anthropics/claude-code-action's releases](https://github.com/anthropics/claude-code-action/releases).* > v1.0.183 > -------- > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.183> > > v1.0.182 > -------- > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.182> > > v1.0.181 > -------- > > What's Changed > -------------- > > * fix: share one exchanged WIF credential across spawned Claude processes by [`@KeisukeYamashita`](https://github.com/KeisukeYamashita) in [anthropics/claude-code-action#1407](https://redirect.github.com/anthropics/claude-code-action/pull/1407) > > New Contributors > ---------------- > > * [`@KeisukeYamashita`](https://github.com/KeisukeYamashita) made their first contribution in [anthropics/claude-code-action#1407](https://redirect.github.com/anthropics/claude-code-action/pull/1407) > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.181> > > v1.0.180 > -------- > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.180> > > v1.0.179 > -------- > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.179> > > v1.0.178 > -------- > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.178> > > v1.0.177 > -------- > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.177> > > v1.0.176 > -------- > > What's Changed > -------------- > > * docs: fix dead example links in custom-automations.md by [`@evol1228`](https://github.com/evol1228) in [anthropics/claude-code-action#1513](https://redirect.github.com/anthropics/claude-code-action/pull/1513) > * test: cover prepareContext validation error branches by [`@farmer-data`](https://github.com/farmer-data) in [anthropics/claude-code-action#1460](https://redirect.github.com/anthropics/claude-code-action/pull/1460) > * fix: sanitize {{label}} in branch name templates by [`@pa-arth`](https://github.com/pa-arth) in [anthropics/claude-code-action#1492](https://redirect.github.com/anthropics/claude-code-action/pull/1492) > * fix(sanitizer): strip alt text from reference-style markdown images by [`@HumphreySun98`](https://github.com/HumphreySun98) in [anthropics/claude-code-action#1488](https://redirect.github.com/anthropics/claude-code-action/pull/1488) > * fix: map claude\_args model to SDK options by [`@Epochex`](https://github.com/Epochex) in [anthropics/claude-code-action#1474](https://redirect.github.com/anthropics/claude-code-action/pull/1474) > * fix: allow leading underscore in branch names (valid per git-check-ref-format) by [`@riley-mete-db`](https://github.com/riley-mete-db) in [anthropics/claude-code-action#1486](https://redirect.github.com/anthropics/claude-code-action/pull/1486) > * fix(format): filter out thinking\_tokens system messages from step summary by [`@anishesg`](https://github.com/anishesg) in [anthropics/claude-code-action#1479](https://redirect.github.com/anthropics/claude-code-action/pull/1479) > * docs: map custom\_instructions to --append-system-prompt ([#1480](https://redirect.github.com/anthropics/claude-code-action/issues/1480)) by [`@farmer-data`](https://github.com/farmer-data) in [anthropics/claude-code-action#1484](https://redirect.github.com/anthropics/claude-code-action/pull/1484) > * fix: handle null comment/review author from deleted accounts by [`@pa-arth`](https://github.com/pa-arth) in [anthropics/claude-code-action#1490](https://redirect.github.com/anthropics/claude-code-action/pull/1490) > > New Contributors > ---------------- > > * [`@evol1228`](https://github.com/evol1228) made their first contribution in [anthropics/claude-code-action#1513](https://redirect.github.com/anthropics/claude-code-action/pull/1513) > * [`@pa-arth`](https://github.com/pa-arth) made their first contribution in [anthropics/claude-code-action#1492](https://redirect.github.com/anthropics/claude-code-action/pull/1492) > * [`@HumphreySun98`](https://github.com/HumphreySun98) made their first contribution in [anthropics/claude-code-action#1488](https://redirect.github.com/anthropics/claude-code-action/pull/1488) > * [`@Epochex`](https://github.com/Epochex) made their first contribution in [anthropics/claude-code-action#1474](https://redirect.github.com/anthropics/claude-code-action/pull/1474) > * [`@riley-mete-db`](https://github.com/riley-mete-db) made their first contribution in [anthropics/claude-code-action#1486](https://redirect.github.com/anthropics/claude-code-action/pull/1486) > * [`@anishesg`](https://github.com/anishesg) made their first contribution in [anthropics/claude-code-action#1479](https://redirect.github.com/anthropics/claude-code-action/pull/1479) > > **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.176> > > v1.0.175 > -------- ... (truncated) Commits * [`be7b93b`](anthropics/claude-code-action@be7b93b) chore: bump Claude Code to 2.1.220 and Agent SDK to 0.3.220 * [`e0cf66d`](anthropics/claude-code-action@e0cf66d) chore: bump Claude Code to 2.1.219 and Agent SDK to 0.3.219 * [`44423bd`](anthropics/claude-code-action@44423bd) chore: bump Claude Code to 2.1.218 and Agent SDK to 0.3.218 * [`b00a341`](anthropics/claude-code-action@b00a341) fix: share one exchanged WIF credential across spawned Claude processes ([#1407](https://redirect.github.com/anthropics/claude-code-action/issues/1407)) * [`fa7e2f0`](anthropics/claude-code-action@fa7e2f0) chore: bump Claude Code to 2.1.217 and Agent SDK to 0.3.217 * [`b76a077`](anthropics/claude-code-action@b76a077) chore: bump Claude Code to 2.1.216 and Agent SDK to 0.3.216 * [`af0559e`](anthropics/claude-code-action@af0559e) chore: bump Claude Code to 2.1.215 and Agent SDK to 0.3.215 * [`3553f84`](anthropics/claude-code-action@3553f84) chore: bump Claude Code to 2.1.214 and Agent SDK to 0.3.214 * [`700e7f8`](anthropics/claude-code-action@700e7f8) chore: bump Claude Code to 2.1.212 and Agent SDK to 0.3.212 * [`3e807ec`](anthropics/claude-code-action@3e807ec) fix: handle null comment/review author from deleted accounts ([#1490](https://redirect.github.com/anthropics/claude-code-action/issues/1490)) * Additional commits viewable in [compare view](anthropics/claude-code-action@e90deca...be7b93b) Updates `actions/setup-java` from 5.5.0 to 5.6.0 Release notes *Sourced from [actions/setup-java's releases](https://github.com/actions/setup-java/releases).* > v5.6.0 > ------ > > What's Changed > -------------- > > * Backport to v5: Add Maven compiler problem matcher for javac diagnostics by [`@brunoborges`](https://github.com/brunoborges) in [actions/setup-java#1087](https://redirect.github.com/actions/setup-java/pull/1087) > * feat: expose cache-primary-key output ([#597](https://redirect.github.com/actions/setup-java/issues/597)) [v5 backport] by [`@brunoborges`](https://github.com/brunoborges) in [actions/setup-java#1089](https://redirect.github.com/actions/setup-java/pull/1089) > * dist: Cover Tencent Kona JDK 25 ([#1108](https://redirect.github.com/actions/setup-java/issues/1108)) [v5 backport] by [`@brunoborges`](https://github.com/brunoborges) in [actions/setup-java#1110](https://redirect.github.com/actions/setup-java/pull/1110) > * Backport [#1111](https://redirect.github.com/actions/setup-java/issues/1111): Preserve Maven toolchains across repeated setup-java runs ([#1099](https://redirect.github.com/actions/setup-java/issues/1099)) by [`@brunoborges`](https://github.com/brunoborges) in [actions/setup-java#1113](https://redirect.github.com/actions/setup-java/pull/1113) > * Backport [#1097](https://redirect.github.com/actions/setup-java/issues/1097)/[#1098](https://redirect.github.com/actions/setup-java/issues/1098) to v5: cache Maven and Gradle wrapper distributions separately by [`@brunoborges`](https://github.com/brunoborges) in [actions/setup-java#1122](https://redirect.github.com/actions/setup-java/pull/1122) > > **Full Changelog**: <actions/setup-java@v5...v5.6.0> Commits * [`03ad4de`](actions/setup-java@03ad4de) Backport [#1097](https://redirect.github.com/actions/setup-java/issues/1097)/[#1098](https://redirect.github.com/actions/setup-java/issues/1098): cache Maven and Gradle wrapper distributions separately... * [`d229d2e`](actions/setup-java@d229d2e) Backport [#1111](https://redirect.github.com/actions/setup-java/issues/1111): Preserve Maven toolchains across repeated setup-java runs ([#1](https://redirect.github.com/actions/setup-java/issues/1)... * [`bbf0f69`](actions/setup-java@bbf0f69) dist: Cover Tencent Kona JDK 25 ([#1110](https://redirect.github.com/actions/setup-java/issues/1110)) * [`513edc4`](actions/setup-java@513edc4) feat: expose cache-primary-key output ([#597](https://redirect.github.com/actions/setup-java/issues/597)) [v5 backport] ([#1089](https://redirect.github.com/actions/setup-java/issues/1089)) * [`62df799`](actions/setup-java@62df799) Add Maven compiler problem matcher for javac diagnostics ([#1087](https://redirect.github.com/actions/setup-java/issues/1087)) * [`176156a`](actions/setup-java@176156a) chore: bump version to 5.6.0 for v5 release line * [`bf7b8de`](actions/setup-java@bf7b8de) build: rebuild dist for backported changes ([#1079](https://redirect.github.com/actions/setup-java/issues/1079), [#1083](https://redirect.github.com/actions/setup-java/issues/1083), [#1084](https://redirect.github.com/actions/setup-java/issues/1084)) * [`0173e6d`](actions/setup-java@0173e6d) Infer distribution from asdf .tool-versions vendor prefix ([#1084](https://redirect.github.com/actions/setup-java/issues/1084)) * [`f45cd82`](actions/setup-java@f45cd82) Rename jdkFile input to jdk-file with deprecated alias ([#1083](https://redirect.github.com/actions/setup-java/issues/1083)) * [`e2863ad`](actions/setup-java@e2863ad) Map Zulu x86 architecture to i686 for Azul Metadata API ([#1079](https://redirect.github.com/actions/setup-java/issues/1079)) * Additional commits viewable in [compare view](actions/setup-java@0f481fc...03ad4de) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- Dependabot commands and options You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Fixes #1406
Problem
GitHub OIDC tokens are single-use at the Anthropic token-exchange endpoint (the same
jticannot be exchanged twice). When theplugins/plugin_marketplacesinputs are configured, the action spawns several short-livedclaudeprocesses per job (claude plugin marketplace add, oneclaude plugin installper plugin, then the main query). Each process resolved workload identity federation from the bare env vars and exchanged the same identity-token file independently: the first exchange succeeded and every later process got 401 (jti_reused), which the main query retried for ~3 minutes before failing the job. Details, eBPF process traces, and request-ids in #1406.Fix
The SDK only enables its on-disk credentials cache (
<config_dir>/credentials/<profile>.json, shared across processes) when federation is loaded from a profile config file, not from bare env vars.setupWorkloadIdentity()now additionally writes a profile pointing at the identity-token file and selects it viaANTHROPIC_CONFIG_DIR+ANTHROPIC_PROFILE, so the first process exchanges once and every other process reuses the cached access token.RUNNER_TEMP(0700 dir / 0600 file), next to the identity token.ANTHROPIC_IDENTITY_TOKEN_FILEand the federation env vars are kept as a fallback for CLIs that predate profile support — older CLIs degrade to today's behavior, never worse.jti) token from the same file path recorded in the profile.Verification
bun test: 702/702 pass (includes 2 new unit tests for the profile file),bun run typecheck,bun run format:checkall green.jti: two sequentialclaudeprocesses sharing one identity token — env-var path: second process retriesjti_reusedfor ~3 minutes and dies (matches production failures exactly); profile path: second process reuses the cached credential with zero additional exchanges and succeeds. Verified with both Claude Code 2.1.167 and 2.1.173.is_error: false, main query completes in ~6s. An eBPF trace shows the same fiveclaudeprocesses contactingapi.anthropic.com, now with a single token exchange.Notes / limitations
ANTHROPIC_CONFIG_DIR/ANTHROPIC_PROFILE, they are overridden while federation inputs are configured (federation inputs are an explicit opt-in, and previously the env-var path was similarly authoritative).