Почему Copilot-приложение с Read-only всё равно тратит кредиты
Ночной агент анализа иногда зависит от входа одного сотрудника. 27 октября GitHub открыл публичную предварительную версию серверной аутентификации для GitHub Apps, установленных в организации и использующих Copilot SDK. Сервис работает от имени установки. При этом разрешение Read-only может давать доступ к платным запросам.
Только чтение не означает бесплатно
Приложению дают организационное разрешение Copilot Requests: Read-only и короткоживущий токен установки. Использование и счёт относятся к организации, которой принадлежит установка. Здесь чтение разрешает запросы, расходующие кредиты ИИ.

Представим компанию с приложением анализа и сервисом кратких пересказов. Оба могут иметь права чтения и создавать расходы. Отсутствие изменений файлов не исключает потребления модели. Идентичность рабочей нагрузки меняет ответственность, а не стоимость вывода.
У Actions и внешних серверов разные входы
Внешний сервис или другая CI-система передаёт токен явно через параметр SDK, например gitHubToken. Поддерживаются только установки организации, не личные и не корпоративные Enterprise-установки. Их ранее обсуждавшийся выпуск имеет другую область применения.
В репозитории организации GitHub Actions может использовать GITHUB_TOKEN. Для этого нужны copilot-requests: write в YAML и политика Allow use of Copilot CLI billed to the organization. Аутентификация установленного приложения этой политики не требует. Read-only и write описывают разные пути.
Идентичность должна работать и через час
Токен установки истекает через час. Новый токен нужно доставить работающему процессу. Документация предлагает перезапустить дочерний клиент с новым токеном, а для встроенной или существующей среды — её хост. Замена файла сама по себе не гарантирует принятие нового значения.
useLoggedInUser: false отключает автоматический поиск учётных данных, включая токены в переменных окружения. Передавайте токен явно через SDK. Если ноутбук работает, а сервер нет, отделите случайный вход через личную учётную запись от реально переданного токена.

Учёт по приложениям, бюджет по организации
Владельцы находят использование в CSV по organization и app_client_id. Сопоставление с client_id API установок позволяет определить app_slug. В веб-представлении использования ИИ такого разделения пока нет. Бюджета отдельного приложения тоже нет, а бюджет только с уведомлениями расход не останавливает.
Приостановка или удаление установки блокирует также её доступ к другим ресурсам организации. Главное изменение — более явный владелец автоматической работы в рамках политик моделей и расходов. Вместе с отказом от личного входа должны переноситься обновление токенов и ответственность за оплату.