Установка GitHub App в enterprise не открывает код репозиториев
Скрипт настроек компании иногда зависит от личного токена давно ушедшего сотрудника. 23 октября GitHub объявил общую доступность enterprise-установок GitHub Apps. Больше административных задач можно перевести с classic PAT, но установка на уровне предприятия не открывает весь его код.
Что может администрировать приложение
Обновление охватывает политики репозиториев, ruleset, чтение запросов на обход правил и списки разрешённых IP. Чтение такого запроса и изменение правила требуют разных прав. Для начала не нужно включать все разрешения на запись.
Enterprise-установка предоставляет только enterprise-права. Запрошенные приложением права организаций и репозиториев здесь не выдаются. Для чтения кода двух организаций нужны отдельные установки и соответствующий доступ к репозиториям. Поэтому доступные настройки предприятия при отказе в чтении кода могут быть нормальным результатом.
Одно приложение, несколько установок
Представим предприятие acme с организациями web и mobile. Установка одного приложения во всех трёх аккаунтах создаёт три установки. Enterprise-токен не заменяет токен web, а токен web не действует в mobile. Авторская схема показывает вымышленный пример, а не реальный интерфейс GitHub.

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

Перед заменой личного токена
Если скрипт объединяет политики предприятия и код нескольких организаций, замены строки может быть недостаточно. Разделите задачи, проверьте поддержку API и нужный способ аутентификации. Не все enterprise-операции GraphQL поддерживают приложения. Начать с чтения удобно для сравнения результатов и границ доступа.
Источники обновляются не одновременно: changelog от 23 октября говорит об общей доступности, а проверенная сегодня страница установки ещё содержит public preview. Здесь статус запуска взят из датированного объявления, а границы прав — из документации. Преимущество в том, что автоматизацию можно описать через аккаунт и задачу, а не копировать все широкие полномочия человека.
Источники и дополнительные материалы
GitHub Docs · Enterprise installation