GENESISCODE DOCTOR AI
GENESIS REPAIR KNOWLEDGE NETWORK

GitHub Actions Execution Protections: pull_request_target November 2, 2026 Checklist

QUICK ANSWER

GitHub made workflow execution protections generally available on September 17, 2026. The controls let repository, organization and enterprise administrators define actor and event allowlists before a workflow starts, and GA adds workflow-file targeting, policy Insights and REST API management. The urgent production deadline is November 2, 2026: GitHub says its default policy that blocks pull_request_target in affected public repositories will move from evaluate mode to enforcement for repositories that were using the default policy before GA. Audit every public repository that uses pull_request_target now. Use policy Insights to identify runs that would be blocked, decide whether each workflow can move to pull_request or another safer event, and explicitly allow pull_request_target only where it is genuinely required. Even when it is allowed, do not check out, build or execute untrusted pull-request code in a privileged pull_request_target context with secrets or a privileged GITHUB_TOKEN.

Common symptoms

  • A public repository uses pull_request_target and its Actions policy Insights show runs that would be blocked when GitHub enforces the default policy
  • A deployment, labeling, triage or automation workflow relies on pull_request_target but no one has documented why that privileged event is still required
  • An organization wants different trigger rules for deploy.yml versus ordinary CI workflows
  • Teams need to stage new Actions trigger restrictions without unexpectedly breaking production workflows

Possible causes

  • GitHub moved workflow execution protections from public preview to general availability on September 17, 2026
  • GitHub's default public-repository policy blocks pull_request_target and is scheduled for enforcement on November 2, 2026 for affected repositories that were using the default policy before GA
  • pull_request_target runs in the context of the base repository and can have access to secrets or a privileged GITHUB_TOKEN, so executing attacker-controlled fork code in that context can create a supply-chain compromise
  • Repository-level workflow YAML alone is not always enough to enforce organization-wide trigger policy consistently
HOW TO FIX IT

Work from the safest step to the harder repair.

  1. Step 1. Inventory every repository that uses pull_request_target, workflow_dispatch and other privileged or manually triggered events. Record the workflow path, event, permissions block, secret access, checkout/build behavior and who is expected to trigger it.
  2. Step 2. Open GitHub Actions policy Insights while the default pull_request_target rule is still in evaluate mode. Identify the exact workflows that would be blocked after enforcement rather than guessing from repository count alone.
  3. Step 3. For each pull_request_target workflow, ask whether it actually needs that event. If it only needs to build or test untrusted pull-request code, prefer pull_request so the run uses the lower-trust pull-request context.
  4. Step 4. If pull_request_target remains necessary for metadata, labeling, trusted commenting or another base-repository task, keep the privileged job narrowly scoped. Do not check out, build or execute code from the untrusted pull request while secrets or a privileged GITHUB_TOKEN are available.
  5. Step 5. Use workflow-file targeting when policies need different behavior for specific workflow files. GitHub's GA release says policies can now target individual workflow paths rather than forcing one repository-wide rule.
  6. Step 6. Use multiple small policies instead of one oversized ruleset when practical. GitHub's documentation recommends layering clearly defined policies across enterprise, organization and repository scopes.
  7. Step 7. Keep the rule in evaluate mode long enough to observe legitimate workflows, then compare the observed block set with the intended policy before enforcement. Treat a clean evaluate period as evidence for this workload, not proof that every future event is safe.
  8. Step 8. Where an explicit exception is required, allow only the needed event, actor and workflow path. Avoid broad exceptions that restore unrestricted trigger capability across unrelated workflows.
  9. Step 9. Review workflow permissions separately from event policy. An allowed event still needs least-privilege GITHUB_TOKEN permissions, controlled secret access and normal branch/environment protections.
  10. Step 10. Test representative workflows after changing policy: fork pull requests, same-repository pull requests, trusted maintainer actions, bots/GitHub Apps, Dependabot and deployment flows as applicable. Verify both allowed and intentionally blocked cases.
  11. Step 11. For centrally managed environments, use the Actions policies REST API only after validating the policy in a small scope. Roll out progressively and preserve a documented rollback path in case legitimate workflows are unexpectedly blocked.
  12. Step 12. Before November 2, 2026, recheck GitHub's live changelog and Actions policy documentation for any timing or scope changes, then record the final policy state and verification date.

Need the actual code? Go to GenesisCodeDoctor.com to search the Code Store or request code for the exact platform, error, and repair you are working on.

TROUBLESHOOTING DECISION TREE

Use evidence to decide the next move.

  1. 1. Is the repository public and using GitHub's default pull_request_target policy? If yes, treat November 2, 2026 as the documented enforcement deadline for affected repositories.
  2. 2. Does the workflow need to execute untrusted pull-request code? If yes, prefer pull_request or another lower-trust design instead of privileged pull_request_target execution.
  3. 3. Does a trusted automation genuinely require pull_request_target? If yes, keep privileged operations isolated from untrusted code and explicitly scope the policy to the required workflow/event.
  4. 4. Would one repository-wide rule break unrelated CI? If yes, use workflow-file targeting or layered policies instead of a broad exception.
  5. 5. Do Insights and negative tests match the intended allow/block behavior? If no, remain in evaluate mode and fix the policy before enforcement.
REPAIR FLOW

A visual path from symptom to verified production.

Observe
Protect
Isolate
Repair
Test
Publish
Verify live
BEFORE YOU PASTE CODE

Protect the working site first.

  • Review event policy and workflow YAML together because trigger restrictions do not replace least-privilege workflow permissions.
  • Use non-production repositories or a narrow repository set for the first enforcement test when organization-wide blast radius is material.
  • Never print secrets, tokens, policy exports containing sensitive identifiers or private workflow data into public diagnostics.
STOP AND GET HELP WHEN

Do not turn a repair into a larger outage.

  • Do not simply disable the default policy to keep an old workflow working before reviewing whether the workflow executes untrusted code with privileged credentials.
  • Do not assume private or internal repositories are covered by the same default pull_request_target block; GitHub says the default policy applies to public repositories.
  • Do not treat evaluate mode as enforcement. In evaluate mode, workflows continue to run while Insights show what would be blocked.
  • Do not weaken branch protection, environment approvals, token permissions or secret controls to work around an Actions trigger-policy failure.
HOW GENESIS HANDLES IT

Diagnose the exact failure before choosing a repair.

Genesis separates the visible symptom from the underlying technical cause. Run the supported diagnostic first, review the evidence, and then use a matching repair only when the failure is actually verified.

Platform scope
GitHub Actions · GitHub.com · public repositories · organizations · enterprises · Actions policies
Category
CI/CD security · Supply-chain security · GitHub Actions governance
Last updated
2026-09-26
REPAIR PROFILE

Know the complexity before you edit.

Difficulty
Intermediate
Change risk
High

These labels describe implementation complexity and blast radius, not a guaranteed repair time.

AUTHORITATIVE SOURCES

Verify time-sensitive platform details at the source.

COMMON QUESTIONS

Before you make the change

When will GitHub enforce the default pull_request_target block?

GitHub says November 2, 2026 for affected public repositories that were using the default pull_request_target policy before general availability.

Does the default rule apply to private repositories?

No. GitHub says the default pull_request_target blocking policy does not apply to private or internal repositories.

What is evaluate mode?

Evaluate mode is a shadow mode: workflows continue to run, while policy Insights show which runs would be blocked if the rule were enforced.

Can policies target one workflow file?

Yes. GitHub's general-availability release added workflow-file targeting so execution protections can be scoped to specific workflow paths.

Next step

Start with a free diagnostic. If Genesis verifies a problem and a compatible treatment exists, continue to the matching Code Store product or repair path. If you cannot find the exact code you need, request it at GenesisCodeDoctor.com rather than forcing a generic snippet into the wrong platform.