Skip to content

ci: skip Claude-backed test jobs on fork PRs - #1655

Merged
ashwin-ant merged 2 commits into
mainfrom
ci/skip-claude-jobs-on-fork-prs
Aug 14, 2026
Merged

ashwin-ant merged 2 commits into
mainfrom
ci/skip-claude-jobs-on-fork-prs

Conversation

@ashwin-ant

@ashwin-ant ashwin-ant commented Aug 14, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

The test-* workflows and claude-review.yml run the action against the Claude API, authenticated via workload identity federation. Fork PRs can't mint the OIDC token that gets exchanged for an access token, so every one of those jobs failed on external contributions and buried the real signal from ci.yml.

This gates each such job on the PR head repo matching the base repo, the same way claude-agent-sdk-python does:

if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
  • The event_name != 'pull_request' arm keeps push and workflow_dispatch runs unaffected. Since github.event_name is inherited by workflow_call, this also covers the ci-all.yml path.
  • test-structured-output.yml's test-summary job folds the gate into its existing always() so it doesn't run and exit 1 against all-skipped needs.
  • claude-review.yml only fires on pull_request, so it uses the plain repo comparison.

ci.yml (test / prettier / typecheck) is unchanged and still runs on fork PRs. claude.yml and issue-triage.yml are comment/issue-event driven and run in the base repo context, so they're untouched too.

Also: fix test/fetch-depth.test.ts on CI (unrelated, but it was red on main)

setupBranch fetch depth > still limits the depth on an already shallow checkout (added in #1647) fails on ubuntu-latest. The test creates its bare remote with a plain git init --bare, so the remote's HEAD points at init.defaultBranch (master on the runner) while the test only pushes main. git clone --depth=1 implies --single-branch, and with a dangling remote HEAD git falls back to "You appear to have cloned an empty repository" — no commits, no .git/shallow, so --is-shallow-repository is false. It passed locally for anyone whose default branch is main.

Fixed by creating the bare remote with --initial-branch=main. Verified locally: fails 1/4 with GIT_CONFIG_GLOBAL set to init.defaultBranch=master before, 4/4 after.

Test plan

  • bun test green locally, including under a simulated init.defaultBranch=master
  • Same-repo PR: all Claude-backed jobs still run and ci / test is green (this PR)
  • Fork PR: Claude-backed jobs show as skipped, ci / * still runs
  • push to main via ci-all.yml: Claude-backed jobs still run

Jobs that run the action against the Claude API authenticate via workload
identity federation, which fork PRs cannot mint an OIDC token for, so they
always failed on external contributions. Gate each such job on the PR head
repo matching the base repo; push and workflow_dispatch runs are unaffected.

No-Verification-Needed: CI workflow config only, exercised by Actions on the PR
The shallow-clone case created its bare remote with a plain git init, so
HEAD pointed at whatever init.defaultBranch resolves to (master on CI)
while the test only pushed main. git clone --depth=1 implies
--single-branch, and with a dangling remote HEAD it produces an empty,
non-shallow clone, so the is-shallow assertion failed on runners whose
default branch is not main.

No-Verification-Needed: test-only change
@ashwin-ant
ashwin-ant force-pushed the ci/skip-claude-jobs-on-fork-prs branch from 86bf484 to edcee55 Compare August 14, 2026 23:36
@ashwin-ant
ashwin-ant enabled auto-merge (squash) August 14, 2026 23:36
@ashwin-ant
ashwin-ant merged commit a2cac87 into main Aug 14, 2026
37 checks passed
@ashwin-ant
ashwin-ant deleted the ci/skip-claude-jobs-on-fork-prs branch August 14, 2026 23:40
mergify Bot added a commit to ArcadeData/arcadedb that referenced this pull request Aug 23, 2026
Bumps the github-actions group with 2 updates: [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) and [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action).
Updates `docker/setup-buildx-action` from 4.2.0 to 4.3.0
Release notes

*Sourced from [docker/setup-buildx-action's releases](https://github.com/docker/setup-buildx-action/releases).*

> v4.3.0
> ------
>
> * Bump `@​docker/actions-toolkit` from 0.92.0 to 0.95.0 in [docker/setup-buildx-action#595](https://redirect.github.com/docker/setup-buildx-action/pull/595)
> * Bump brace-expansion from 1.1.13 to 1.1.18 in [docker/setup-buildx-action#600](https://redirect.github.com/docker/setup-buildx-action/pull/600)
> * Bump js-yaml from 5.2.0 to 5.3.0 in [docker/setup-buildx-action#585](https://redirect.github.com/docker/setup-buildx-action/pull/585)
> * Bump postcss from 8.5.10 to 8.5.25 in [docker/setup-buildx-action#598](https://redirect.github.com/docker/setup-buildx-action/pull/598)
> * Bump undici from 6.27.0 to 6.28.0 in [docker/setup-buildx-action#601](https://redirect.github.com/docker/setup-buildx-action/pull/601)
>
> **Full Changelog**: <docker/setup-buildx-action@v4.2.0...v4.3.0>


Commits

* [`37fe631`](docker/setup-buildx-action@37fe631) Merge pull request [#595](https://redirect.github.com/docker/setup-buildx-action/issues/595) from docker/dependabot/npm\_and\_yarn/docker/actions-to...
* [`b5c4f91`](docker/setup-buildx-action@b5c4f91) [dependabot skip] chore: update generated content
* [`3e93b63`](docker/setup-buildx-action@3e93b63) build(deps): bump `@​docker/actions-toolkit` from 0.92.0 to 0.95.0
* [`e527031`](docker/setup-buildx-action@e527031) Merge pull request [#600](https://redirect.github.com/docker/setup-buildx-action/issues/600) from docker/dependabot/npm\_and\_yarn/brace-expansion-1...
* [`c68814b`](docker/setup-buildx-action@c68814b) [dependabot skip] chore: update generated content
* [`3f891b0`](docker/setup-buildx-action@3f891b0) build(deps): bump brace-expansion from 1.1.13 to 1.1.18
* [`787db26`](docker/setup-buildx-action@787db26) Merge pull request [#585](https://redirect.github.com/docker/setup-buildx-action/issues/585) from docker/dependabot/npm\_and\_yarn/js-yaml-5.2.1
* [`f779368`](docker/setup-buildx-action@f779368) [dependabot skip] chore: update generated content
* [`7d5e604`](docker/setup-buildx-action@7d5e604) build(deps): bump js-yaml from 5.2.0 to 5.3.0
* [`292c2fb`](docker/setup-buildx-action@292c2fb) Merge pull request [#590](https://redirect.github.com/docker/setup-buildx-action/issues/590) from docker/dependabot/github\_actions/actions/setup-n...
* Additional commits viewable in [compare view](docker/setup-buildx-action@bb05f3f...37fe631)
  
Updates `anthropics/claude-code-action` from 1.0.192 to 1.0.198
Release notes

*Sourced from [anthropics/claude-code-action's releases](https://github.com/anthropics/claude-code-action/releases).*

> v1.0.198
> --------
>
> **Full Changelog**: <anthropics/claude-code-action@v1.0.197...v1.0.198>
>
> v1.0.197
> --------
>
> What's Changed
> --------------
>
> * fix: neutralize the checkout credential under actions/checkout v6+ include layout ([#1510](https://redirect.github.com/anthropics/claude-code-action/issues/1510)) by [`@​TemRevil`](https://github.com/TemRevil) in [anthropics/claude-code-action#1526](https://redirect.github.com/anthropics/claude-code-action/pull/1526)
>
> New Contributors
> ----------------
>
> * [`@​TemRevil`](https://github.com/TemRevil) made their first contribution in [anthropics/claude-code-action#1526](https://redirect.github.com/anthropics/claude-code-action/pull/1526)
>
> **Full Changelog**: <anthropics/claude-code-action@v1.0.196...v1.0.197>
>
> v1.0.196
> --------
>
> What's Changed
> --------------
>
> * fix(security): unify secret redaction in public comment outputs by [`@​Juwan-Hwang`](https://github.com/Juwan-Hwang) in [anthropics/claude-code-action#1693](https://redirect.github.com/anthropics/claude-code-action/pull/1693)
> * fix: strip unused ALL\_INPUTS environment variable from Claude subprocess env by [`@​Juwan-Hwang`](https://github.com/Juwan-Hwang) in [anthropics/claude-code-action#1692](https://redirect.github.com/anthropics/claude-code-action/pull/1692)
> * fix(github): match bot actors in comment filters using GraphQL \_\_typename by [`@​Neal006`](https://github.com/Neal006) in [anthropics/claude-code-action#1616](https://redirect.github.com/anthropics/claude-code-action/pull/1616)
>
> New Contributors
> ----------------
>
> * [`@​Juwan-Hwang`](https://github.com/Juwan-Hwang) made their first contribution in [anthropics/claude-code-action#1693](https://redirect.github.com/anthropics/claude-code-action/pull/1693)
>
> **Full Changelog**: <anthropics/claude-code-action@v1.0.195...v1.0.196>
>
> v1.0.195
> --------
>
> **Full Changelog**: <anthropics/claude-code-action@v1.0.194...v1.0.195>
>
> v1.0.194
> --------
>
> What's Changed
> --------------
>
> * Harden delete\_files MCP tool: validate paths within repo root (consistency with commit\_files) by [`@​GabrielOnRails`](https://github.com/GabrielOnRails) in [anthropics/claude-code-action#1636](https://redirect.github.com/anthropics/claude-code-action/pull/1636)
> * Only limit fetch depth when the checkout is already shallow by [`@​winklemad`](https://github.com/winklemad) in [anthropics/claude-code-action#1647](https://redirect.github.com/anthropics/claude-code-action/pull/1647)
> * fix(base-action): add ~/.local/bin to $GITHUB\_PATH after auto-install by [`@​anishesg`](https://github.com/anishesg) in [anthropics/claude-code-action#1643](https://redirect.github.com/anthropics/claude-code-action/pull/1643)
> * feat(context): include diffHunk in PR review comment context by [`@​rishavnaskar`](https://github.com/rishavnaskar) in [anthropics/claude-code-action#1584](https://redirect.github.com/anthropics/claude-code-action/pull/1584)
> * ci: skip Claude-backed test jobs on fork PRs by [`@​ashwin-ant`](https://github.com/ashwin-ant) in [anthropics/claude-code-action#1655](https://redirect.github.com/anthropics/claude-code-action/pull/1655)
> * fix: bump shell-quote to 1.8.4 to remediate CVE-2026-9277 by [`@​doshidhaval`](https://github.com/doshidhaval) in [anthropics/claude-code-action#1557](https://redirect.github.com/anthropics/claude-code-action/pull/1557)
> * fix(images): bound attachment downloads by [`@​abhinavkr26104`](https://github.com/abhinavkr26104) in [anthropics/claude-code-action#1625](https://redirect.github.com/anthropics/claude-code-action/pull/1625)
>
> New Contributors
> ----------------
>
> * [`@​GabrielOnRails`](https://github.com/GabrielOnRails) made their first contribution in [anthropics/claude-code-action#1636](https://redirect.github.com/anthropics/claude-code-action/pull/1636)
> * [`@​winklemad`](https://github.com/winklemad) made their first contribution in [anthropics/claude-code-action#1647](https://redirect.github.com/anthropics/claude-code-action/pull/1647)
> * [`@​doshidhaval`](https://github.com/doshidhaval) made their first contribution in [anthropics/claude-code-action#1557](https://redirect.github.com/anthropics/claude-code-action/pull/1557)
>
> **Full Changelog**: <anthropics/claude-code-action@v1.0.193...v1.0.194>
>
> v1.0.193
> --------
>
> **Full Changelog**: <anthropics/claude-code-action@v1.0.192...v1.0.193>


Commits

* [`3f854a8`](anthropics/claude-code-action@3f854a8) chore: bump Claude Code to 2.1.238 and Agent SDK to 0.3.238
* [`5ee796a`](anthropics/claude-code-action@5ee796a) chore: bump Claude Code to 2.1.237 and Agent SDK to 0.3.237
* [`cff8d3c`](anthropics/claude-code-action@cff8d3c) fix(git-config): neutralize checkout credential in include-based config ([#1526](https://redirect.github.com/anthropics/claude-code-action/issues/1526))
* [`e2a4b76`](anthropics/claude-code-action@e2a4b76) chore: bump Claude Code to 2.1.236 and Agent SDK to 0.3.236
* [`65b50df`](anthropics/claude-code-action@65b50df) fix(github): match bot actors in comment filters using GraphQL \_\_typename ([#1](https://redirect.github.com/anthropics/claude-code-action/issues/1)...
* [`0a80d21`](anthropics/claude-code-action@0a80d21) fix: strip unused ALL\_INPUTS environment variable from Claude subprocess env ...
* [`54eadc2`](anthropics/claude-code-action@54eadc2) fix(security): unify secret redaction in public comment outputs ([#1693](https://redirect.github.com/anthropics/claude-code-action/issues/1693))
* [`d40ddef`](anthropics/claude-code-action@d40ddef) chore: bump Claude Code to 2.1.235 and Agent SDK to 0.3.235
* [`459ad35`](anthropics/claude-code-action@459ad35) chore: bump Claude Code to 2.1.234 and Agent SDK to 0.3.234
* [`d721746`](anthropics/claude-code-action@d721746) fix: bound image attachment downloads ([#1625](https://redirect.github.com/anthropics/claude-code-action/issues/1625))
* Additional commits viewable in [compare view](anthropics/claude-code-action@e63208c...3f854a8)
  
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
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