Перейти к содержимому

Настройка GitHub App

Зарегистрируйте собственное GitHub App с шифрованием учетных данных и доступом только для чтения.

Регистрация приложения

Используйте одно GitHub.com App на установку Repovio. PAT и OAuth остаются доступны. Как владелец откройте Settings, Developer settings, GitHub Apps, New GitHub App. Укажите уникальное имя и домашнюю страницу Repovio. Для разных аккаунтов выберите Any account; частное приложение устанавливается только в аккаунт владельца. Секрет клиента OAuth, адрес обратного вызова и адрес настройки не требуются.

Разрешения и события

Установите базовые разрешения ниже в Read-only; Metadata предоставляется автоматически. Дополнительные разрешения безопасности включайте только при необходимости и доступности. Подпишитесь на перечисленные события; события жизненного цикла установки GitHub отправляет автоматически. Repovio ограничивает создаваемые токены чтением даже при более широких правах приложения.

Required repository permissions (Read-only):
Actions (actions)
Issues (issues)
Pull requests (pull_requests)
Metadata (metadata, automatic)

Optional repository permissions (Read-only):
Dependabot alerts (dependabot_alerts)
Code scanning alerts (security_events)
Secret scanning alerts (secret_scanning_alerts)

Webhook events:
workflow_run
issues
pull_request
dependabot_alert
code_scanning_alert
secret_scanning_alert

Настройка Repovio

Включите вебхуки с общедоступным HTTPS-адресом ниже. PUBLIC_URL должен указывать на доступную извне установку. Создайте случайный секрет длиной минимум 16 символов и укажите одинаковое значение в GitHub и Repovio. Создайте ключ RSA в GitHub и загрузите PEM. В разделе администрирования аккаунтов провайдеров откройте GitHub App, введите App ID, slug, полный закрытый ключ и секрет, затем проверьте и сохраните. API проверяет приложение и шифрует оба секрета в PostgreSQL. Сохраняйте ключ шифрования установки; сохраненные секреты не возвращаются браузеру.

https://repovio.example.com/api/v1/webhooks/github-app

Установка и подключение

Установите приложение через GitHub, выберите аккаунт или организацию и только нужные репозитории. Вернитесь, обновите список установок и подключите нужный аккаунт. Приостановленные и уже подключенные установки нельзя подключить повторно. Список получен от настроенного приложения, ID из обратного вызова не считается доверенным. Добавляйте репозитории отдельно. Токены обновляются автоматически; первичный импорт и периодический опрос дополняют вебхуки.

Перед подключением измените локальное имя, если оно совпадает с именем существующего аккаунта PAT или OAuth.

Ротация и отключение

Создайте новый ключ GitHub, сохраните и проверьте синхронизацию до удаления старого. Секрет вебхука обновляйте с обеих сторон одновременно; старые подписи сразу перестают приниматься. Пустые поля сохраняют секреты. Удалите подключенные аккаунты перед заменой приложения или удалением конфигурации. Это также удаляет зависимые данные отслеживания, поэтому сначала экспортируйте их. Локальное удаление не удаляет установку в GitHub.

Устранение неполадок

При ошибках настройки проверьте App ID, slug и PEM. При ошибках подписи проверьте секрет, HTTPS и неизменность тела запроса в прокси. Для пустого списка проверьте репозитории и права, затем обновите установки. При удалении или приостановке исторические данные сохраняются; восстановите доступ в GitHub и обновите список. Отсутствие дополнительных прав безопасности не блокирует остальные области. Проверьте Jobs. Опрос продолжается при сбоях вебхуков. Тесты с имитацией не проверяют реальную установку; для этого нужно тестовое приложение.

См. также