Установка GitHub App в enterprise не открывает код репозиториев

Dev
Просмотры 4

Скрипт настроек компании иногда зависит от личного токена давно ушедшего сотрудника. 23 октября GitHub объявил общую доступность enterprise-установок GitHub Apps. Больше административных задач можно перевести с classic PAT, но установка на уровне предприятия не открывает весь его код.

Что может администрировать приложение

Обновление охватывает политики репозиториев, ruleset, чтение запросов на обход правил и списки разрешённых IP. Чтение такого запроса и изменение правила требуют разных прав. Для начала не нужно включать все разрешения на запись.

Enterprise-установка предоставляет только enterprise-права. Запрошенные приложением права организаций и репозиториев здесь не выдаются. Для чтения кода двух организаций нужны отдельные установки и соответствующий доступ к репозиториям. Поэтому доступные настройки предприятия при отказе в чтении кода могут быть нормальным результатом.

Одно приложение, несколько установок

Представим предприятие acme с организациями web и mobile. Установка одного приложения во всех трёх аккаунтах создаёт три установки. Enterprise-токен не заменяет токен web, а токен web не действует в mobile. Авторская схема показывает вымышленный пример, а не реальный интерфейс GitHub.

Авторская схема: enterprise, web и mobile — отдельные установки; линии обозначают границы аккаунтов для токенов. Источник: GitHub Docs, 25 октября 2026 года.
Авторская схема: enterprise, web и mobile — отдельные установки; линии обозначают границы аккаунтов для токенов. Источник: GitHub Docs, 25 октября 2026 года.

Поэтому одного имени приложения недостаточно для ключа кеша токенов. Добавление ID установки помогает разделить работу с политиками предприятия и чтение репозиториев. Это пример переноса документированной границы аккаунта в структуру программы.

Где пересекаются права приложения и пользователя

Пользовательский токен зависит от прав и приложения, и пользователя. Если пользователь может только читать, приложение не сможет превысить этот доступ от его имени. Токен установки действует в пределах прав приложения, предоставленных этой установке.

Для выдачи используются JWT приложения и ID установки. Документация описывает POST /app/installations/INSTALLATION_ID/access_tokens и срок действия один час. Octokit может создавать и обновлять токены. Короткий срок не отменяет защиту закрытого ключа и отдельный учёт установок в кеше.

Авторская схема выдачи через JWT и ID установки с учётом срока и прав. Настоящие токены и запросы аутентификации не использовались.
Авторская схема выдачи через JWT и ID установки с учётом срока и прав. Настоящие токены и запросы аутентификации не использовались.

Перед заменой личного токена

Если скрипт объединяет политики предприятия и код нескольких организаций, замены строки может быть недостаточно. Разделите задачи, проверьте поддержку API и нужный способ аутентификации. Не все enterprise-операции GraphQL поддерживают приложения. Начать с чтения удобно для сравнения результатов и границ доступа.

Источники обновляются не одновременно: changelog от 23 октября говорит об общей доступности, а проверенная сегодня страница установки ещё содержит public preview. Здесь статус запуска взят из датированного объявления, а границы прав — из документации. Преимущество в том, что автоматизацию можно описать через аккаунт и задачу, а не копировать все широкие полномочия человека.

Источники и дополнительные материалы

GitHub Changelog · 2026-10-23

GitHub Docs · Enterprise installation

GitHub Docs · Permissions

GitHub Docs · Enterprise GraphQL

GitHub Docs · Installation token

다른 글