Skip to content

Product1 publisher3 min readPublished

GitHub will restrict pull_request_target by default on affected public repos on November 2, 2026

GitHub's workflow execution protections went generally available on September 17, and the evaluate mode that shows what a rule would block before enforcement is documented as an Enterprise Cloud capability.

The Product Desk · Product desk

Illustration accompanying GitHub will restrict pull_request_target by default on affected public repos on November 2, 2026

What happened

  • GitHub made workflow execution protections generally available on September 17 for GitHub Enterprise, organizations and repositories, letting admins restrict which actors and events can trigger Actions.
  • The check happens before a workflow run begins: if the actor or the event is not on the admin's allowlist, the run never starts.
  • GitHub will begin enforcing a default restriction on the pull_request_target trigger for affected public repositories on November 2, 2026.
  • Evaluate mode, which runs rules in shadow so admins can see what would be blocked before enforcing, is listed in GitHub's docs as an Enterprise Cloud capability.

Compiled by The Product DeskSomething wrong?How this is made

Why it matters

  • constraint Admins on plans below Enterprise Cloud can write the rule, and shadowing it takes Enterprise Cloud, so their first real test of an allowlist is enforcement against live CI.
  • cost When automated dependency and scanning PRs stop triggering checks, the team that enabled the allowlist has to fix it, days after the change.
  • decision Per-file scoping turns one repository-wide toggle into a decision per workflow file, which means someone has to say who may run deploy.yml and write it down.
  • precedent GitHub is now changing a trigger's default on a published date, so pipeline permissions move on the platform's schedule and audits get scheduled around it.

The first thing that breaks in a Monday rollout is the bot. GitHub's documentation says bots such as dependabot[bot] have to be added as allowed actors when workflows depend on them [13]. An allowlist built from a roster of humans quietly stops the dependency updates nobody on the team thought of as a trigger.

The dated part is pull_request_target. That trigger runs with the base repository's token and secrets, and a workflow that checks out code from an untrusted fork can run the attacker's code with those privileges [15]. GitHub tightened actions/checkout in June [16]. The devops.com account says the workflows to look at first are the ones using pull_request_target that check out untrusted code while holding secrets or write permissions [17].

Evaluate mode is how you find out what an allowlist would stop. GitHub's June announcement described it as a way to "run your rules in shadow, so you can see exactly what a rule would block before you enforce it" [10]. The protections themselves reach further than the shadow test does: all public repositories, plus private repositories on GitHub Team or GitHub Enterprise [12].

Actor rules unbundle two permissions that arrived together from the day Actions launched, when write access to a repository was enough to start a workflow run [23]. GitHub's documentation puts the point this way: "Actor rules let you separate who contributes code from who runs your CI, so you can grant a contributor write access without granting them the ability to execute workflows" [21]. Rules live under Settings, then Actions, then Policies, and build on GitHub's rulesets [22].

Mitch Ashley, vice president and practice lead at The Futurum Group, told devops.com that "a single compromised developer account can mean the difference between a well-running pipeline and compromised software" [19], and that "with these improvements, dev teams will no longer have to rely upon bespoke built solutions to secure this aspect of their development pipelines" [20]. GitHub's own 2026 Actions security roadmap points to incidents involving tj-actions/changed-files, Nx and trivy-action [18].

The preview ran 91 days, June 18 to September 17 [3]. GA added rules that target a single workflow file, insights into how rules are evaluated at enterprise, organization and repository level, and a REST API that creates, reads, updates and deletes policies at all three [7][8][9]. The API is the part that matters for anyone who already keeps branch protections in version control. The policy then goes through the same review as the code it governs.

Before November 2, check each workflow for two things. Does it hold secrets or write permissions, and does it check out code from a fork. Workflows answering yes to both are the ones the default restriction was written for [15][14]. The rest can be scoped one workflow file at a time [7].

What to watch

  • Whether GitHub extends evaluate mode beyond Enterprise Cloud before the November 2, 2026 enforcement date.
  • Whether the default restriction later covers private repositories or triggers other than pull_request_target.
  • Whether GitHub publishes what its insights show about how many runs the default rule would have blocked.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories