

7 月 1 日,GitHub 在 Changelog 里发了一条只有一分钟阅读量的通知。
但这条通知的影响,比很多产品发布都大:GitHub Models 将在 2026 年 7 月 30 日全面退役。
不是停止拉新,也不是某几个模型下架。
Playground、模型目录、推理 API、BYOK 端点以及相关 UI,都会一起消失。GitHub 还特意强调,这次影响所有客户,包括仍在活跃使用的老用户。
从今天算起,迁移窗口只剩 8 天。
很多团队最初使用 GitHub Models,只是为了快速试模型:用 GitHub 身份进入 Playground,挑一个模型,拿 Token 调几次 API。
问题是,Demo 一旦开始被内部脚本、CI 任务、评测平台或机器人调用,它就不再是 Demo。
真正形成的耦合至少有五层:
所以这次退役不是“把 URL 换成 Microsoft Foundry”这么简单。GitHub 官方给出了 Foundry 和 GitHub Copilot 两个方向,但没有承诺它们是原接口的无损替代品。
不要先开迁移会,先在代码库和部署配置里搜索。
rg -n "GitHub Models|models\.inference|MODEL_ENDPOINT|MODEL_ID|GITHUB_TOKEN|BYOK" .
然后把结果按四类归档:
这一步的价值不是统计文件数,而是找到关停当天谁会先报错、报错后会不会自动重试、重试是否会放大故障。

如果业务代码里到处直接初始化某家模型 SDK,这次迁移会非常痛苦。
最小可行改造不是引入一个大框架,而是收口成一个足够小的接口:
typeModelRequest = {
model: string;
messages: Array<{ role: string; content: string }>;
timeoutMs: number;
};
typeModelResult = {
text: string;
usage?: { inputTokens: number; outputTokens: number };
provider: string;
rawId?: string;
};
interfaceModelProvider {
invoke(request: ModelRequest): Promise<ModelResult>;
}
业务只依赖 ModelProvider。鉴权、endpoint、模型参数映射、错误归一化和 usage 解析,都留在供应商实现内部。
这样做并不会自动解决迁移问题,但它能把后续风险从“改整个系统”缩小成“替换一个实现”。
GitHub 已安排两次短时服务中断。7 月 16 日已经过去,7 月 23 日还有一次。
在 brownout 期间,请求会临时返回错误,随后服务恢复。这不是普通维护窗口,而是一次接近真实关停的故障注入机会。
至少验证四件事:

一个危险的假成功是:请求重试几次后恢复了,于是大家认为系统扛住了。
但 7 月 30 日之后,旧入口不会恢复。真正要验证的是,没有旧服务时,业务能否持续运行。
模型迁移最常见的验收方式,是人工打开十几个结果,觉得“差不多”。这对生产系统远远不够。
建议保留一组脱敏黄金样本,同时记录:
如果模型用于分类、抽取、路由或生成测试数据,还要加入确定性的规则校验。不能把另一个模型的打分直接当成唯一结论。

如果只是一个没人使用的 Playground Demo,够。
如果已经进入生产,但依赖集中、样本完整、能灰度切流,也可能够。
如果 endpoint 散落在多个仓库、Token 所有人不清楚、没有成本监控、没有回归样本,那 13 天不是迁移周期,而是风险暴露周期。
我会把完成标准写得非常具体:

GitHub Models 的退出提醒了一件事:开发者体验再顺滑的平台入口,也可能快速结束生命周期。
真正可靠的不是“永远不会关停”的供应商,而是你的系统始终保留三种能力:供应商可替换、行为可回归、故障可降级。
这三件事如果现在还没有,7 月 30 日只是第一次提醒。