Мир ИИ

GitHub Models закрыли: куда переносить LLM из CI

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 называет два адреса, и оба меняют форму интеграции.

  1. Microsoft Foundry (он же Azure AI Foundry) — каталог моделей в Azure. Одной переменной окружения тут не обойтись: нужна подписка Azure, привязанная карта, оплата в валюте и договор с другим юрлицом. Для разработчика из России это отдельная задача, которая решается не в рамках вечера.
  2. GitHub Copilot — доступ к моделям внутри редактора и рабочих процессов GitHub. Это подписка для человека за клавиатурой. Если у вас была строка curl в шаге сборки, Copilot её не заменяет.

Третий вариант GitHub не называет, но именно он ближе всего к исходному сценарию: любой сторонний эндпоинт с OpenAI-совместимым протоколом. Тогда правится базовый URL и имя секрета, а код запроса остаётся тем же.

Что сломается в GitHub Actions в первую очередь

Ломается то, где ключ подставлялся сам. В этом и была главная ценность GitHub Models: код внутри Actions пользовался токеном, который уже лежал в окружении, и никакого секрета заводить не требовалось.

Проверьте в репозиториях три вещи:

  1. Шаги, которые ходят на models.github.ai или на models.inference.ai.azure.com.
  2. Блок permissions: с ключом models. В актуальной справке по синтаксису workflow такого ключа в списке разрешений уже нет — рядом остались contents, packages, id-token, attestations.
  3. Использование ${{ secrets.GITHUB_TOKEN }} в качестве авторизации для запроса к модели. Токен по-прежнему валиден для API GitHub, но предъявлять его больше некуда.

Отдельно проверьте шаги, помеченные continue-on-error: true. Там падение не уронит сборку, а просто уедет в лог, и интеграция будет числиться живой ещё месяцами.

Как перевести workflow на OpenAI-совместимый API

Шесть шагов, если исходный вызов был обычным HTTP-запросом.

  1. Получите ключ и положите его в секреты репозитория — Settings → Secrets and variables → Actions. Ключ KeyDealer выдаётся на странице входа.
  2. Замените базовый URL на https://api.keydealer.ru/v1, путь /chat/completions остаётся прежним.
  3. Замените заголовок авторизации на Authorization: Bearer ${{ secrets.KEYDEALER_API_KEY }}.
  4. Поменяйте имя модели: идентификаторы у каждой платформы свои, живой список отдаёт GET /v1/models. Схема запроса описана в openapi.yaml.
  5. Уберите из permissions: ключ models, если он там остался.
  6. Прогоните workflow вручную через workflow_dispatch до того, как на него приедет коммит.

Тело запроса, схема ответа и поле usage при этом не меняются — в этом и смысл совместимого протокола. Тот же приём мы расписывали подробнее в материале про переезд с закрывающегося Assistants API: когда протокол общий, миграция сводится к URL, ключу и имени модели.

Сколько стоит держать LLM в CI: расчёт в рублях

От 29,70 ₽ в месяц на самой дешёвой платной модели каталога. Возьмём типичный сценарий Continuous AI: тридцать прогонов в сутки, в каждом 8000 входных токенов и 1000 выходных. Это генерация описаний к папкам, разбор диффа, черновик релиз-ноутов — обычная работа автоматики.

К входным токенам добавляется служебный контекст маршрута, поэтому в расчёте он учтён отдельно — механику мы разбирали в статье о том, почему prompt_tokens больше, чем вы отправили.

МодельСтавка, ₽ за 1 млнСлужебный контекст₽ за прогон₽ за месяц (900 прогонов)
GLM-4.73 / 320000,033029,70
GPT-OSS 120B5 / 5не измерен0,045040,50
Gemini 3 Flash6 / 620000,066059,40
GPT-5.6 Luna8 / 827000,093684,24
Sonnet 530 / 3095000,2775249,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 ₽. В расчёт включён опубликованный служебный контекст маршрута.

Источники