GitHub CLI: проверьте срок жизни скопированных OAuth-токенов

Dev
Просмотры 6

CLI по-прежнему авторизована, а запущенный вчера скрипт перестал работать. Возможно, он хранит старую копию токена. Анонс GitHub от 21 октября 2026 года — повод сначала описать путь учётных данных.

Схема проверки: обновление CLI, внешняя копия и операция потребителя. Это не интерфейс продукта и не бенчмарк.
Схема проверки: обновление CLI, внешняя копия и операция потребителя. Это не интерфейс продукта и не бенчмарк.

Подтверждено: обновление включается по желанию

Начиная с v2.103.0 команда gh auth login --expiring запрашивает обновляемые данные. gh хранит истекающий access token и ротируемый refresh token. Старые сеансы и вручную заданные токены сохраняют поведение. Поддерживаются github.com, ghe.com и GHES от 3.23; другие серверы могут выдать бессрочный токен. Реальный результат проверяют через gh auth status.

Копия строки сама не обновляется

GitHub предупреждает о скриптах, однократно читающих gh auth token. Внешним потребителям нужно получать свежий результат по необходимости. Успех при запуске не доказывает действительность позже. Компрометация refresh token остаётся риском: короткий срок не заменяет минимальные права и отзыв.

Предлагаемый порядок проверки

Запишите версию, хост и потребителей, копирующих токены в файлы, переменные или расширения. Фиксируйте владельца и момент чтения без секретов. В тестовой среде сравните одну операцию чтения сразу и спустя время. Разделяйте истечение срока, права и сетевые сбои. Для HTTPS git изучите gh auth setup-git и рекомендацию git 2.46 или новее. Изменения настроек рассматривайте отдельно.

Некоторым интеграциям сначала нужна доработка

Если интеграции нужен долгоживущий токен, GitHub рекомендует отложить включение для этого процесса. Назначьте ответственного и дату пересмотра. Не приравнивайте OAuth разработчика к GITHUB_TOKEN в CI. Один флаг не унифицирует права и отзыв всей автоматизации. Сверьте поддержку установленной версии.

«Оставаться в системе» скрывает два вопроса: может ли владелец обновить токен и получает ли потребитель новое значение? Мы не измеряли частоту сбоев сообщества. Схема одного реального пути покажет владельца кэша и границы испытания.

Официальные источники и проверки

GitHub Changelog · Expiring OAuth preview

GitHub Docs · CLI authentication

Документируйте версию, хост, владельца кэша и результаты без секретных значений.