GitHub to Restrict pull_request_target in Public Repositories Starting December 2
Starting December 2, GitHub will block pull_request_target workflows in public repositories by default. Teams should check their Actions workflows and policies ahead of time.
Starting December 2, 2026, GitHub will block GitHub Actions workflows triggered by pull_request_target in public repositories by default. As Habr reports, teams that need these workflows will have to explicitly allow the event in their Actions policies. The restriction was originally scheduled for November 2 but was postponed by a month.
Why this event is being restricted
pull_request_target is used to automate work with pull requests, including those from forks. A workflow might, for example, add a label or post a comment. The new rule is not about those actions themselves, but about the context in which the workflow runs.
It runs in the context of the base repository and may have access to its secrets. If the workflow also runs untrusted code from an external fork, an attacker could potentially steal secrets or interfere with CI/CD. GitHub is blocking these runs by default while leaving teams the option to keep the event enabled for workflows that genuinely need it.
Allowing the event does not eliminate the risk: what the workflow does after it starts matters too.
Timeline and repositories affected
The policy is currently in evaluate mode, so workflows continue to run. Administrators can already open Policy insights in GitHub Actions settings to see which workflows will stop running when blocking takes effect. This lets teams assess the impact in advance, before the restriction becomes permanent.
Before December 2, GitHub will temporarily enable blocking twice: November 9 and 16, 2026, each time from 16:00 to 18:00 UTC (19:00–21:00 Moscow time). During those windows, workflows covered by the new rule will not run. Instead, GitHub will create a failed run record with an error message. After each window, the policy will return to evaluate mode.
Starting December 2, blocking will become the permanent default. The change applies to public repositories on GitHub Free, GitHub Team, and GitHub Enterprise Cloud. It will not affect private or internal repositories, and the new rule does not apply to GitHub Enterprise Server. That makes public repositories with workflows using pull_request_target the place to start checking.
What website teams should check
If your website is developed in a public repository, check Policy insights in GitHub Actions settings before November 9. A workflow running successfully now does not mean it will keep working after December 2: evaluate mode shows which restrictions will apply but does not yet stop workflows from running.
Once you have checked, review each affected workflow based on what it needs to do:
- If
pull_request_targetis not required, switch topull_requestwhere possible. - If the task requires the event, allow it in the policy only for the workflow files that genuinely need it.
- If the workflow should not run, keep the default block in place.
For developers, the review does not end with the policy setting. GitHub recommends not running untrusted code from external pull requests when it has access to repository secrets or a privileged GITHUB_TOKEN. Allowing the event lets the workflow run again, but it does not make that combination safe. Protecting secrets matters beyond this change, too: the blog has previously covered active secrets found in public GitHub repositories.
Website owners and marketers do not need to understand workflow syntax. It is enough to ask the team whether any workflows in the public repository run on pull_request_target and whether they have checked what will happen to them on November 9 and 16, and then from December 2. If that automation is part of the pull request process, it is better to find out whether changes are needed before a workflow fails to run.
My take: simplify first, then allow
I would not make an exception just to preserve the existing behavior. First, I would find out why the workflow needs pull_request_target specifically and whether pull_request would do the job. In my experience, a solution with less access is easier to review and maintain than an exception whose purpose the team may eventually forget.
If the event really is necessary, I would limit permission to the workflows that need it and separately review what they do with code from external forks. It is worth discussing the decision as a team: the policy determines whether a workflow can start, but its safety also depends on what it runs and what it can access.
Sources
Where the news comes from. The text is a retelling in the author’s own words; the facts come from the source, the opinion is the author’s.
Experienced full-stack developer
I build web services and help teams avoid overcomplicating architecture too early. I often explain to junior colleagues why a simple solution can be more reliable than a trendy one.
All posts by the authorRelated articles
GitHub May Temporarily Require Authentication to Clone Public Repositories
During periods of anomalous traffic, GitHub may temporarily require authentication for some git clone and git fetch operations over HTTPS. Developers should check automated builds that fetch code without authentication.
GhostAction: Around 1,900 GitHub Accounts Compromised, More Than 30,000 Repositories Affected
GhostAction affected around 1,900 GitHub accounts and more than 30,000 repositories. Attackers tried to steal CI/CD secrets, cloud credentials, and API keys for AI services.
Microsoft and Google Back a Shared Opt-Out for AI Training on Website Content
Microsoft and Google have backed a shared way for websites to opt out of AI training. Microsoft will also let site owners separately restrict the use of their content in Bing and Copilot answers.
Discussion 4
Ulyana Babayan
For a small website team, what would you check first: repository Actions policies or each workflow’s use of fork code? I’m trying to understand the simplest way to catch a risky `pull_request_target` setup before the December change.
Lev Fyodorov
i’d start by checking each `pull_request_target` workflow for checkout or execution of fork code, since that’s where the secrets risk comes from. does the Actions policy show which workflows rely on the event, or do you have to audit the workflow files separately?
Rui Silva Post author
The Actions policy can show whether the event is allowed at the repository or organization level, but it won’t tell you which workflows depend on it. You’ll need to inspect the workflow files separately; in our team, searching for `pull_request_target` and then checking for checkout or execution of fork-controlled code is a practical first pass.
Otto Ilves
One small distinction: the policy tells you whether `pull_request_target` is allowed, but it may not identify which workflows depend on it. I’d check the workflow files for fork checkout or execution separately—still learning the Actions policy side myself 🙂