文章

GitHub 无状态令牌全量切换:CI 认证、Copilot 模型、审查 API 三处要改

#1472 · 2026-10-03 · 21ZHAO Blog
Reading Path / ARTICLE 先抓主张,再转成行动 #1472 · 21ZHAO Blog · 读完进入产品或下一篇

GitHub 无状态令牌全量切换:CI 认证、Copilot 模型、审查 API 三处要改

为什么值得关注

GitHub 在 2026 年 10 月 2 日发布的 Changelog 记录了三项变更:无状态 GitHub App 安装令牌(Stateless GitHub App installation tokens)完成全量切换,Copilot 代码审查在 REST 与 GraphQL API 层面获得支持,部分 Copilot 旧模型被废弃。

无状态安装令牌的分阶段发布从 4 月 27 日启动,10 月 2 日收尾。新签发的令牌默认采用无状态格式。GitHub 未在 Changelog 中披露签名算法细节,读者应以官方文档为准。

Copilot 代码审查 API 开放后,effort level 成为可传参数,默认值为 Balanced。旧模型废弃覆盖 Copilot Chat、Inline Edits、Ask、Agent Modes 及 code completions。

依赖 GitHub Actions 或大规模集成 Copilot 的团队,需要分别核对认证、模型版本、API 调用三个层面。

关键信息

截至发稿,签名算法、旧凭据失效时间、被废弃模型 ID、端点路径与字段名均未在 Changelog 中披露,读者应以 GitHub 官方文档为准。

令牌格式

  • 无状态 GitHub App 安装令牌完成全量切换。
  • 新签发令牌默认采用无状态格式。
  • GitHub 未在 Changelog 中说明签名算法变更或旧凭据失效时间点。

模型版本

  • 部分 Copilot 旧模型被废弃。
  • 废弃范围覆盖 Copilot Chat、Inline Edits、Ask、Agent Modes 及 code completions。
  • GitHub 未在 Changelog 中列出被废弃的具体模型 ID。

API 能力

  • Copilot 代码审查在 REST 与 GraphQL API 层面获得支持。
  • effort level 为可传参数,默认值为 Balanced。
  • 具体端点路径、字段名与取值枚举以 GitHub 官方 REST 与 GraphQL 文档为准,本文不提供未经核实的示例。

调用方式以 GitHub 官方 REST 与 GraphQL 文档为准,本文不提供未经核实的 CLI 或 git config 示例。

21ZHAO 判断

无状态令牌切换把认证状态从服务端移到令牌本身,CI 流水线中令牌的签发、轮换、失效窗口需要重新对齐。若无状态令牌不依赖服务端状态校验,则泄露后可能无法通过服务端撤销,替换前应人工确认泄露后的处置路径,并以官方文档确认。

旧模型废弃覆盖 Chat、Inline Edits、Ask、Agent Modes、code completions 五类入口,硬编码旧模型 ID 的脚本可能因模型不可用而失败。

Copilot 代码审查 API 开放后,代码质量门禁可以从异步等待改为在流水线内直接调用。改造前,门禁依赖异步任务轮询或外部 CI 插件等待审查结果;改造后,流水线可在同一作业内发起审查请求并接收返回,减少一次跨系统轮询。effort level 参数让团队按任务类型分配审查强度:关键路径任务可调高 effort level,非关键路径任务保持 Balanced 以控制耗时。

GitHub 同时收紧认证、淘汰旧模型、开放 API,Copilot 从 IDE 插件向平台化服务转型。认证收紧提高迁移成本,旧模型淘汰推动用户升级,API 开放把审查能力嵌入更多流水线,这三步对 GitHub 的定价权、生态锁定和第三方工具(如 GitLab、Cursor)形成压力。若 GitHub 后续按 effort level 引入差异化计费,Balanced 作为默认值会成为成本基线,高强度审查任务的成本弹性将高于默认档位。这一点尚待官方确认。

可复用建议

  • 扫描代码库与 CI 配置中引用 GitHub App 令牌的位置,避免将令牌明文写入 CI 日志、缓存或第三方扫描结果。使用专用扫描工具,并确保扫描过程不记录令牌明文。按最小权限原则分批替换为新格式令牌,保留回滚窗口并开启审计日志。替换后验证旧令牌是否仍可用、新令牌权限范围是否符合预期。
  • 令牌签发点:核对 GitHub App 安装、Actions secrets 引用等位置。
  • 模型 ID 引用点:核对脚本、工作流、配置文件中的硬编码模型名,替换旧模型 ID,覆盖 Chat、Inline Edits、Ask、Agent Modes、code completions 五类入口。
  • API 调用点:核对 REST 与 GraphQL 请求中的端点与字段,在流水线中接入 Copilot 代码审查 API,默认 effort level 设为 Balanced,关键路径任务通过参数单独调整。
  • 监控无状态令牌泄露后的异常调用:开启审计日志异常调用监控与令牌使用频率告警,准备快速轮换流程。
  • 关注 GitHub 官方 Changelog 对签名算法、旧凭据失效时间、effort level 计费的后续说明,不提前假设未披露的实现细节。

参考来源

本文仅基于 GitHub Changelog 公开信息,未验证签名算法与计费细节。