What happens
After PR #2457 upgraded actions/checkout from v4 to v7, the e2e workflow fails on all fork PRs with:
##[error]Refusing to check out fork pull request code from a 'pull_request_target' workflow.
This workflow runs with the base repository's GITHUB_TOKEN, secrets, default-branch cache scope,
and runner access. Fetching and executing a fork's code in that trusted context commonly leads
to "pwn request" vulnerabilities. To opt in, review the risks at
https://gh.io/securely-using-pull_request_target and set 'allow-unsafe-pr-checkout: true'
on the actions/checkout step.
Observed on PR #2010 (run 27952613286). The job never reaches the test step — it fails at checkout.
What should happen
The e2e workflow should be able to check out fork PR code, with appropriate security controls. Before the v7 upgrade this worked because checkout v4 did not enforce the fork safety check.
Context
actions/checkout@v7 added a security guard that blocks fork PR checkouts in pull_request_target workflows by default. The e2e workflow uses pull_request_target because it needs access to secrets (GCP credentials, GitHub PAT) that aren't available to pull_request events on forks.
The ok-to-test label gate already provides a manual review step before e2e runs on fork PRs, which is the mitigation actions/checkout recommends verifying before opting in with allow-unsafe-pr-checkout: true.
This blocks e2e CI for all external contributors.
What happens
After PR #2457 upgraded
actions/checkoutfrom v4 to v7, the e2e workflow fails on all fork PRs with:Observed on PR #2010 (run 27952613286). The job never reaches the test step — it fails at checkout.
What should happen
The e2e workflow should be able to check out fork PR code, with appropriate security controls. Before the v7 upgrade this worked because checkout v4 did not enforce the fork safety check.
Context
actions/checkout@v7added a security guard that blocks fork PR checkouts inpull_request_targetworkflows by default. The e2e workflow usespull_request_targetbecause it needs access to secrets (GCP credentials, GitHub PAT) that aren't available topull_requestevents on forks.The
ok-to-testlabel gate already provides a manual review step before e2e runs on fork PRs, which is the mitigationactions/checkoutrecommends verifying before opting in withallow-unsafe-pr-checkout: true.This blocks e2e CI for all external contributors.