跳到主内容

GitHub Actions 将于 12-02 起默认阻止 pull_request_target:公共仓库的十年老用法要改

GitHub 宣布自 2026-12-02 起默认阻止公共仓库的 pull_request_target,11-09 与 11-16 两次 brownout 先行,需显式配置策略放行。

2026-11-03 · GitHub 官方 Changelog(2026-11-02,一手原文)

发布 2026-11-03核实 2026-11-03

要点速览

  • 自 2026-12-02 起,GitHub Actions 将默认阻止所有公共仓库中的 pull_request_target 事件,除非有适用的 Actions event policy 显式允许。
  • 强制执行前有两轮 brownout:2026-11-09 与 2026-11-16 的 16:00–18:00 UTC。期间被默认规则拦下的运行会产生失败记录与错误注解,工作流不执行;每个窗口结束后规则回到 evaluate mode,工作流恢复运行但带 warning。
  • 原本的执行日期是 2026-11-02,官方已推迟到 12-02——原文写「Enforcement was previously scheduled for November 2, 2026」。
  • 私有仓库与内部仓库不受影响;该变更覆盖 GitHub Free / Team / Enterprise Cloud 的公共仓库,不影响 GitHub Enterprise Server。
  • 没有「全局关掉」的开关。要保留用法,只能在 Actions event policy 里显式允许并用 workflow file targeting 限定具体工作流。
  • 官方给出的理由:pull_request_target 在基础仓库的上下文中运行并可访问其 secrets,一旦工作流执行了来自 fork 的不可信代码,可能危及流水线或窃取密钥。

时间线

日期事件
2026-11-02公告发布;原定的强制执行日也被推迟到 12-02
2026-11-09 16:00–18:00 UTC第一次 brownout(临时强制执行)
2026-11-16 16:00–18:00 UTC第二次 brownout(临时强制执行)
2026-12-02永久强制执行,公共仓库默认阻止

受影响之后只有两个选项

官方原文给出的处理路径是二选一:

  • 保留默认规则,继续阻止 pull_request_target;
  • 在适用的 Actions event policy 中显式允许 pull_request_target,并使用 workflow file targeting 只放行特定工作流。

官方建议在第一次 brownout(11-09)之前用 Insights 查看「哪些 workflow runs 会被这条规则拦下」,再决定走哪条路。

AI 之家 观点

一、这是「默认值翻转」而不是「新增一项能力」,杀伤力在于它不报错。 pull_request_target 是大量开源项目做「fork PR 上跑带 secrets 的流水线」的默认写法,十年间沉淀在无数模板里。GitHub 没有禁用它,只是把默认值从「允许」翻成「阻止」——你的 YAML 一个字都不用改,行为就变了。这类变更的排查成本很高,因为人不会主动去看没动过的文件。

二、两次 brownout 才是真正的行动窗口,不是 12-02。 很多团队会把公告里的最终日期记进排期,然后在该日之前一天才动手。但 brownout 会真的让运行失败——11-09 那两小时就是你免费的预演。建议把 11-09 当成 deadline:在那之前跑完 Insights 排查与策略配置,而不是等 12-02。

三、「显式允许 + 按文件限定」本质上是把 CI 权限从「默认信任」改成「逐条授权」。 这条与本站一直跟踪的 Agent 治理主线是同一件事的两面:GitHub 在把 fork PR 触发的高权限执行,从默认开放改成需要点名放行。对装了 GitHub Copilot 编码 agent 或 Agentic Workflows 这类「Markdown 编译成 Actions YAML」的工具链的团队,自动生成的工作流文件也要一起进允许清单,否则会出现「人工写的工作流能跑、agent 生成的跑不了」的割裂。

四、给维护者的三条动作:① 今天就跑一次 Insights,列出会被拦的运行;② 把确实需要 pull_request_target 的工作流逐个登记进允许清单,不要图省事放开通配;③ 在 11-09 brownout 窗口内观察真实失败,把它当成配置是否完整的验证。

待核实

  • GitHub Enterprise Server 是否在后续版本跟进——官方本次明确「不影响 GHES」,仅对 secret risk assessment 提到会在 GHES 3.24 提供;Actions 这条是否跟进未说明。
  • evaluate mode 的 warning 具体以什么形态呈现(运行日志注解 / 邮件 / API 字段)——官方未展开。
  • Actions event policy 的可用粒度上限(能否按分支、按 actor 限定)——官方只提到 workflow file targeting。
  • brownout 之后的 evaluate mode 是否会产生可查询的历史记录——未说明。

来源

延伸阅读:GitHub Agentic Workflows GA、GitHub Copilot 工具卡、AI 编程编辑器百科。

常见问题

pull_request_target 什么时候会被默认阻止?

永久强制从 2026-12-02 开始。在此之前有两次 brownout:2026-11-09 与 2026-11-16 的 16:00–18:00 UTC,期间被阻止的运行会直接失败。

私有仓库会受影响吗?

不会。官方原文明确 Private and internal repositories aren't affected,且该变更只作用于 GitHub Free / Team / Enterprise Cloud 的公共仓库,不影响 GitHub Enterprise Server。

我的工作流必须依赖它,怎么办?

在 Actions event policy 中显式允许 pull_request_target,并用 workflow file targeting 限定到具体工作流文件;没有全局关闭开关。

相关对比

GitHub Copilot vs CodeBuddy:国内团队怎么选?2026 对比

GitHub Copilot 与腾讯 CodeBuddy 2026 选型对比:一个胜在生态覆盖与编辑器支持最广,一个胜在中文语境与国内直连。从产品形态、上手成本、长任务、价格与国内可用性 6 个维度给出明确取舍建议。

GitHub Copilot vs Cody:日常补全还是大型代码库理解?2026 对比

GitHub Copilot 与 Sourcegraph Cody 2026 选型对比:Copilot 胜在补全覆盖与生态最广,Cody 胜在大型代码库的代码搜索与跨仓库上下文检索。从产品形态、上手成本、长任务、价格与国内可用性给出明确取舍。

Cursor vs GitHub Copilot:AI IDE 还是插件?2026 对比

Cursor vs GitHub Copilot 2026 选型对比:AI 原生 IDE vs IDE 插件,从 Composer vs Agent Mode、Tab 补全、多模型、AI Credits 计费、企业版和适合人群判断,帮开发者选对。Cursor 是 VS Code fork 重写交互层,Copilot 是 VS Code 插件继承原生体验。两家都已切 usage 制。

GitHub Copilot vs Tabnine:AI 代码补全怎么选?2026 对比

GitHub Copilot vs Tabnine 2026 选型对比:微软+OpenAI 生态全面的 AI 编程助手 vs 老牌支持私有化部署的代码补全工具。从补全质量、IDE 覆盖、隐私部署、价格和适合人群 6 个维度帮你选对补全工具。

Devin vs OpenHands:买托管服务还是自建开源平台?2026 对比

Devin 与 OpenHands 2026 选型对比:Devin 是开箱即用的云端 AI 软件工程师,按算力单位计费;OpenHands 是可自托管的开源 agent 平台,社区活跃。从产品形态、上手成本、长任务、国内可用性、计费与生态 6 个维度给出明确取舍。

Dify vs n8n:AI 工作流平台怎么选?LLMOps 全控 vs 通用自动化对比

Dify vs n8n 2026 选型对比:Apache 2.0 LLMOps 全平台 vs Sustainable Use License 通用自动化平台,从平台定位、工作流编排、RAG 能力、模型生态、集成数、私有部署、价格模型和适合人群 8 个维度判断,帮你选对 AI 工作流平台。