Мир ИИ
GitHub Models закрыли: куда переносить LLM из CI
30 июля 2026 года GitHub полностью выключил GitHub Models: playground, каталог моделей, inference API и bring-your-own-key. Отключение распространяется на всех, включая клиентов с активным потреблением, — так написано в changelog GitHub от 1 июля. Проверка 10 августа: эндпоинт https://models.github.ai/inference отвечает HTTP 410 с кодом github_models_retirement_brownout. Разработчики узнают об этом из падающих сборок, потому что в GitHub Actions ключ подставлялся автоматически и отдельной строки с секретом в workflow не было. Замена — любой эндпоинт с OpenAI-совместимым протоколом: правится базовый URL и секрет, тело запроса остаётся прежним.
Тихое отключение — худший вид отключения. Модель, которую убирают из каталога, ломает вызов сразу и громко. Платформа, которая была бесплатной и встроенной, ломает то, о чём вы забыли, что оно у вас есть.
Что именно закрыли в GitHub Models
Закрыли сервис целиком. Changelog от 30 июля перечисляет четыре компонента, и ни один из них не пережил дату.
| Компонент | Что делал | Статус после 30.07.2026 |
|---|---|---|
| Playground | Веб-интерфейс для проб промптов | Удалён |
| Каталог моделей | Витрина доступных моделей разных вендоров | Удалён |
| Inference API | Единый HTTP-эндпоинт к моделям | Отдаёт 410 |
| BYOK | Подстановка своего ключа вендора | Удалён |
Отдельно оговорено: изменение касается всех, включая существующих клиентов с активным потреблением. Формулировка не случайная. Июньский шаг закрывал сервис только для новых пользователей, и у тех, кто уже сидел на нём, был законный повод решить, что их не тронут.
Ещё одна деталь из документации GitHub: Models был отдельным продуктом и к GitHub Copilot отношения не имел. Их часто путали, и путаница сейчас работает против пользователя — Copilot жив, поэтому кажется, что жив и доступ к моделям.
Когда GitHub отключил Models: полный таймлайн
Уведомление было, и по срокам оно было честным — почти два месяца от объявления до выключения.
| Дата | Что произошло |
|---|---|
| Июнь 2026 | Объявлено о закрытии, сервис закрыт для новых клиентов |
| 1 июля 2026 | Опубликована дата полного отключения и график brownout |
| 16 июля 2026 | Первое учебное отключение |
| 23 июля 2026 | Второе учебное отключение |
| 30 июля 2026 | Полное отключение всех компонентов |
Brownout — приём из практики отключений: сервис на короткое время начинает возвращать ошибки, чтобы владельцы интеграций поймали падение заранее и успели починиться. Приём рабочий, но он бьёт только по тем, кто смотрит на алерты. Автоматический шаг в CI, который раз в сутки обновляет README, ошибку покажет в логе и на этом успокоится.
Что возвращает эндпоинт GitHub Models сейчас
Отдаёт 410 Gone. Проверено 10 августа 2026 года:
GET https://models.github.ai/inference
HTTP/2 410
{"error":{"code":"github_models_retirement_brownout",
"message":"GitHub Models is temporarily unavailable..."}}
Здесь стоит задержаться. Код 410 Gone в HTTP означает, что ресурс удалён окончательно и возвращаться не планирует, — в отличие от 503, который означает «зайдите позже». А текст ошибки при этом остался с фазы brownout и говорит про временную недоступность. Разработчик, который прочтёт message и не посмотрит на статус, поставит ретрай и будет ждать восстановления сервиса, которого больше нет.
То же самое отдаёт https://models.github.ai/catalog/models. Именно на этот текст ошибки наткнулся Simon Willison, когда 9 августа у него упала сборка в simonw/research — он честно пишет, что до этого момента новость пропустил.
Почему GitHub закрыл Models
Причину GitHub не назвал. В обоих changelog её нет, в документации тоже — там сразу переход к разделу «куда идти дальше». Это стоит сказать прямо, потому что дальше начинаются догадки, и выдавать их за факт нельзя.
Догадка, которая выглядит правдоподобно: бесплатные и дотируемые токены перестали сходиться по деньгам, когда к ним пришли кодовые агенты. Один разработчик в playground тратит десятки тысяч токенов в день. Один агент в цикле — миллионы. Мы разбирали ту же экономику с другой стороны в материале о том, как компании режут расходы на токены: бюджеты, рассчитанные на человека за клавиатурой, ломаются, когда за клавиатуру садится цикл.
Но это версия. В открытых материалах компании причина не опубликована.
Чем заменить GitHub Models: что предлагает GitHub
GitHub называет два адреса, и оба меняют форму интеграции.
- Microsoft Foundry (он же Azure AI Foundry) — каталог моделей в Azure. Одной переменной окружения тут не обойтись: нужна подписка Azure, привязанная карта, оплата в валюте и договор с другим юрлицом. Для разработчика из России это отдельная задача, которая решается не в рамках вечера.
- GitHub Copilot — доступ к моделям внутри редактора и рабочих процессов GitHub. Это подписка для человека за клавиатурой. Если у вас была строка
curlв шаге сборки, Copilot её не заменяет.
Третий вариант GitHub не называет, но именно он ближе всего к исходному сценарию: любой сторонний эндпоинт с OpenAI-совместимым протоколом. Тогда правится базовый URL и имя секрета, а код запроса остаётся тем же.
Что сломается в GitHub Actions в первую очередь
Ломается то, где ключ подставлялся сам. В этом и была главная ценность GitHub Models: код внутри Actions пользовался токеном, который уже лежал в окружении, и никакого секрета заводить не требовалось.
Проверьте в репозиториях три вещи:
- Шаги, которые ходят на
models.github.aiили наmodels.inference.ai.azure.com. - Блок
permissions:с ключомmodels. В актуальной справке по синтаксису workflow такого ключа в списке разрешений уже нет — рядом осталисьcontents,packages,id-token,attestations. - Использование
${{ secrets.GITHUB_TOKEN }}в качестве авторизации для запроса к модели. Токен по-прежнему валиден для API GitHub, но предъявлять его больше некуда.
Отдельно проверьте шаги, помеченные continue-on-error: true. Там падение не уронит сборку, а просто уедет в лог, и интеграция будет числиться живой ещё месяцами.
Как перевести workflow на OpenAI-совместимый API
Шесть шагов, если исходный вызов был обычным HTTP-запросом.
- Получите ключ и положите его в секреты репозитория — Settings → Secrets and variables → Actions. Ключ KeyDealer выдаётся на странице входа.
- Замените базовый URL на
https://api.keydealer.ru/v1, путь/chat/completionsостаётся прежним. - Замените заголовок авторизации на
Authorization: Bearer ${{ secrets.KEYDEALER_API_KEY }}. - Поменяйте имя модели: идентификаторы у каждой платформы свои, живой список отдаёт
GET /v1/models. Схема запроса описана в openapi.yaml. - Уберите из
permissions:ключmodels, если он там остался. - Прогоните workflow вручную через
workflow_dispatchдо того, как на него приедет коммит.
Тело запроса, схема ответа и поле usage при этом не меняются — в этом и смысл совместимого протокола. Тот же приём мы расписывали подробнее в материале про переезд с закрывающегося Assistants API: когда протокол общий, миграция сводится к URL, ключу и имени модели.
Сколько стоит держать LLM в CI: расчёт в рублях
От 29,70 ₽ в месяц на самой дешёвой платной модели каталога. Возьмём типичный сценарий Continuous AI: тридцать прогонов в сутки, в каждом 8000 входных токенов и 1000 выходных. Это генерация описаний к папкам, разбор диффа, черновик релиз-ноутов — обычная работа автоматики.
К входным токенам добавляется служебный контекст маршрута, поэтому в расчёте он учтён отдельно — механику мы разбирали в статье о том, почему prompt_tokens больше, чем вы отправили.
| Модель | Ставка, ₽ за 1 млн | Служебный контекст | ₽ за прогон | ₽ за месяц (900 прогонов) |
|---|---|---|---|---|
| GLM-4.7 | 3 / 3 | 2000 | 0,0330 | 29,70 |
| GPT-OSS 120B | 5 / 5 | не измерен | 0,0450 | 40,50 |
| Gemini 3 Flash | 6 / 6 | 2000 | 0,0660 | 59,40 |
| GPT-5.6 Luna | 8 / 8 | 2700 | 0,0936 | 84,24 |
| Sonnet 5 | 30 / 30 | 9500 | 0,2775 | 249,75 |
Ставки — из живого каталога на 10 августа 2026 года, вход и выход стоят одинаково. Полная таблица по всем семействам живёт в отдельном материале — сколько стоит 1 млн токенов в рублях.
Тридцать рублей в месяц за автоматику, которая раньше была бесплатной, — не та сумма, ради которой стоит держать сломанный workflow. Разброс между нижней и верхней строкой таблицы — 8,4 раза, и для генерации описаний к папкам верхняя строка не нужна.
Оговорка по-честному: скидка за кэш промптов в расчёте не участвует. В каталоге у всех моделей prompt_cache.status равен unsupported, поэтому обещать её мы не можем, а считать по ней — тем более.
Что этот случай меняет в планировании
Меняет отношение к бесплатному слою как к инфраструктуре. GitHub Models был удобен ровно тем, чем оказался опасен: он не требовал решения. Ключ подставлялся, счёт не приходил, строки в бюджете не появлялось — значит, и в списке зависимостей его тоже не было.
Вывод тут не про GitHub. Всё, что в вашем контуре ходит к внешней модели, должно быть перечислено в одном месте: адрес, модель, где лежит ключ, что случится, если эндпоинт ответит 410.
Мы такой список ведём публично — календарь отключений моделей до конца 2026 года. GitHub Models показал в нём дыру: календарь собирает даты по моделям, а выключилась платформа под моделями, и строки такого типа там просто не было. Добавим — отключения платформ ходят реже, но ломают больше.
Если у вас в CI прямо сейчас висит вызов, который получает 410, — берите ключ и правьте базовый URL с именем модели. Это один коммит. Дольше всего обычно уходит на то, чтобы вспомнить, в каком именно из репозиториев этот вызов остался.
Частые вопросы
Когда закрыли GitHub Models?
Сервис полностью отключён 30 июля 2026 года. О закрытии для новых клиентов GitHub объявил в июне 2026, дату полного отключения опубликовал 1 июля, а 16 и 23 июля провёл два учебных отключения (brownout).
Чем GitHub Models отличался от GitHub Copilot?
Это были два разных продукта, и документация GitHub говорит об этом прямо. Models давал HTTP-эндпоинт к моделям разных вендоров и playground; Copilot даёт доступ к моделям внутри редактора и рабочих процессов GitHub. Copilot работает, Models отключён.
Работает ли ещё inference API GitHub Models?
Нет. Проверка 10 августа 2026 года: https://models.github.ai/inference отдаёт HTTP 410 с кодом ошибки github_models_retirement_brownout. Статус 410 означает, что ресурс удалён навсегда, хотя текст ошибки по-прежнему говорит про временное отключение.
Что делать с блоком permissions models в workflow?
Убрать. В актуальной справке по синтаксису workflow ключа models в списке permissions уже нет, а токен, который он выдавал, больше некуда предъявить.
Чем заменить GitHub Models в GitHub Actions?
Любым эндпоинтом с OpenAI-совместимым протоколом: меняется базовый URL и секрет в репозитории, тело запроса остаётся прежним. У KeyDealer это https://api.keydealer.ru/v1 и ключ из личного кабинета.
Почему предложенный GitHub переезд на Microsoft Foundry подходит не всем?
Это другой продукт с подпиской Azure и оплатой картой в валюте. Замена одной переменной окружения в этом случае не работает — меняется контур биллинга и юрлицо, с которым вы имеете дело.
Сколько стоит держать LLM в CI после переезда?
Тридцать прогонов в день по 8000 входных и 1000 выходных токенов на GLM-4.7 обойдутся в 29,70 ₽ за месяц по ставке 3 ₽ за миллион. На Gemini 3 Flash — 59,40 ₽, на GPT-5.6 Luna — 84,24 ₽. В расчёт включён опубликованный служебный контекст маршрута.
Источники
- https://github.blog/changelog/2026-07-30-github-models-is-now-retired/
- https://github.blog/changelog/2026-07-01-github-models-is-being-fully-retired-on-july-30-2026/
- https://docs.github.com/github-models
- https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax
- https://simonwillison.net/2026/Aug/9/github-models-is-now-retired/
- https://keydealer.ru/openapi.yaml