← AUTOMATER NEWSROOM

GitHub Blocks pull_request_target by Default on Dec. 2: Public Repos Must Allow the Trigger or Their Agent CI Stops Running

GitHub moves the pull_request_target default block to Dec. 2, 2026. Public repos must allow the privileged trigger explicitly, or agent PR checks stop.

Original diagram showing a pull_request_target run from a fork pull request with base repository secrets in scope passing through GitHub's default rule, which either blocks the run with a failed run and error annotation or allows it when an Actions event policy targets specific workflow files, with brownouts on November 9 and 16 leading to enforcement on December 2, 2026.Original diagram showing a pull_request_target run from a fork pull request with base repository secrets in scope passing through GitHub's default rule, which either blocks the run with a failed run and error annotation or allows it when an Actions event policy targets specific workflow files, with brownouts on November 9 and 16 leading to enforcement on December 2, 2026.
Original diagram based on GitHub's changelog entry of November 2, 2026, "pull_request_target blocked by default December 2", and GitHub's secure use reference for GitHub Actions. Source: GitHub.

GitHub moved a date on November 2, 2026, and the change matters more than the wording suggests: starting December 2, 2026, GitHub Actions will block pull_request_target events by default in all public repositories, unless an applicable Actions event policy explicitly allows them. The same enforcement had been scheduled for November 2, 2026. Today the rule sits in evaluate mode, so the workflow runs it would block are visible before anything stops, and private and internal repositories are untouched.

The announcement is pull_request_target blocked by default December 2 - GitHub Changelog.

GitHub Changelog entry titled "pull_request_target blocked by default December 2", showing a red RETIRED label above the November 2, 2026 dateline and the opening paragraph announcing that GitHub Actions will block pull_request_target events by default in all public repositories starting December 2, 2026, and that enforcement was previously scheduled for November 2, 2026.
GitHub Changelog, "pull_request_target blocked by default December 2" (Nov. 2, 2026). The capture shows the entry title, a red "RETIRED" label above the dateline "NOVEMBER 2, 2026 • 2 MINUTE READ", and the opening paragraph: GitHub Actions will block pull_request_target events by default in all public repositories starting December 2, 2026, unless an applicable Actions event policy explicitly allows them, and that enforcement was previously scheduled for November 2, 2026. The evaluate-mode note and the private and internal repository line sit below the fold and are not visible here. Source: GitHub. · Original source

The entry carries a red RETIRED label above its dateline. The announcement underneath it is intact: the page text fetched five minutes before this capture still carries the December 2 date, both November brownout windows and no superseding notice. Read the label as a status flag on the entry, and re-check the page before the first brownout if your plan depends on these dates.

The calendar you can act on

Date (UTC) What GitHub does
Now until Nov. 8 The default rule runs in evaluate mode. Blocked runs are visible and the workflows still execute
Nov. 9, 16:00 to 18:00 First brownout. Blocked pull_request_target attempts create failed runs with an error annotation, and the workflows do not execute
Nov. 16, 16:00 to 18:00 Second brownout, same behavior. Afterwards the rule returns to evaluate mode and workflows run with warnings
Dec. 2, 2026 Permanent enforcement in public repositories

The scope is narrow and worth reading precisely. The change applies to public repositories on GitHub Free, GitHub Team and GitHub Enterprise Cloud, and explicitly not to GitHub Enterprise Server. A repository that already has an Actions event policy allowing the event is also unaffected, which is the escape hatch most teams will need.

GitHub describes the brownouts as the identification mechanism: the windows “help you identify affected workflows and update your policies before enforcement becomes permanent.” A failed run with an error annotation during a two-hour window is not a broken pipeline. It is the default rule answering a question you can ask it for free.

Timeline diagram: evaluate mode now, brownouts on November 9 and 16 from 16:00 to 18:00 UTC during which blocked runs fail with an error annotation, then permanent enforcement on December 2, 2026 for public repositories only.Timeline diagram: evaluate mode now, brownouts on November 9 and 16 from 16:00 to 18:00 UTC during which blocked runs fail with an error annotation, then permanent enforcement on December 2, 2026 for public repositories only.
Original diagram based on GitHub's changelog entry of November 2, 2026, "pull_request_target blocked by default December 2". Source: GitHub.

Why this trigger and not another

pull_request_target is the privileged trigger, and GitHub’s own changelog entry explains the risk: the trigger “runs in the context of the base repository and can access its secrets,” so a workflow that “executes untrusted code from a fork” could “compromise your pipeline or steal secrets.” GitHub’s secure use reference for GitHub Actions is blunter about trigger plus checkout: pull_request_target and workflow_run, “when used with the checkout of an untrusted pull request, expose the repository to security compromises,” because those workflows “are privileged,” “may have repository write access and access to referenced secrets,” and they share the main branch cache with other privileged triggers.

That is why the default is a block rather than a warning. It is also why the rest of that secure use reference matters more now than last month: avoid pull_request_target unless the workflow genuinely needs the privileged context, prefer workflow_run for privilege separation, and never check out untrusted pull-request code inside a privileged workflow.

The two paths, and what each one costs

GitHub’s changelog gives two options. Keep the default rule in place and let pull_request_target be blocked, or explicitly allow the event in an applicable Actions event policy, using workflow file targeting to allow specific workflows rather than the event everywhere.

Find the affected workflows first:

# List the workflow files that declare the privileged trigger.
grep -rn "pull_request_target" .github/workflows/

Then allow only what needs it. An allow is an event policy scoped to workflow paths; the exact field names depend on how your organization applies policies, so treat the next block as the intent rather than a copy-paste payload:

# Illustrative intent: allow pull_request_target for one workflow file.
# Event policies are applied through GitHub's Actions policies API or UI.
name: allow-pr-target-labeler
scope: repository
enforcement: evaluate   # evaluate first, then switch to active
workflow_paths:
  - .github/workflows/pr-labeler.yml
allowed_events:
  - pull_request_target

Two consequences of the allow path deserve a decision before December 2 rather than after.

First, a blocked trigger is a missing step, not a red build. A labeler, a comment bot or the verification step that marks an agent-authored pull request as checked simply stops running. The pull request still looks open to a human and the agent still gets its review, but the machine-readable record is gone, and from December 2 the gap is permanent rather than temporary.

Second, allowing the event reopens the path GitHub is closing, and that is the deal on offer. GitHub’s framing is that the default rule “helps reduce this risk while letting you explicitly allow workflows that depend on the trigger.” A team that allows the event inherits the hardening burden, and the first item on that list is the one the secure use reference already names: a privileged workflow must not check out untrusted code from a pull request fork.

Before the first brownout

Use Insights, as GitHub’s changelog instructs, to see which workflow runs the default rule would block, then decide per workflow: keep it blocked, or allow it in an applicable event policy with workflow file targeting.

If your agent pull request verification runs under pull_request_target, the question to answer before November 9 is not whether to allow the trigger but which of your workflows actually need the privileged context. The GitHub Actions trigger allowlist for agent identities covers the actor and event rules an explicit allow has to fit inside, including which workflow files each agent identity may start. The review bot runner secrets checklist covers what the privileged environment can reach once you allow the event back. The branch protection to rulesets migration guide covers the merge-gate side, so a verification step that stops running shows up as a missing required check rather than a stalled agent.

One other item from the same day is worth a look while you audit your Actions setup. GitHub’s code security risk assessment and secret risk assessment now show whether findings sit in protected or unprotected repositories, which helps you decide where to extend security coverage. It is available in GitHub Enterprise Cloud and GitHub Team, with the secret risk assessment coming to GitHub Enterprise Server 3.24. It does not change the December 2 timeline.

The one-line version

Public repositories get pull_request_target blocked by default on December 2, 2026, with brownouts on November 9 and 16 from 16:00 to 18:00 UTC that produce failed runs with an error annotation on the workflows that would be blocked. Find them in Insights now, allow the event for the specific workflow files that need it, and harden the ones you keep.

Sources

  1. pull_request_target blocked by default December 2 - GitHub Changelog
  2. Security risk assessments include repository protection status - GitHub Changelog
  3. Secure use reference - GitHub Docs