Skip to main content

Автоматизации в вашем предприятии

Изучите, как GitHub Appsиспользовать внешние сервисы, и GitHub Actions совместно автоматизируйте процессы в вашем предприятии.

GitHub Автоматизация обычно включает несколько компонентов, работающих вместе. Наиболее важными GitHub собственными компонентами являются:

  • GitHub Actions рабочие процессы, которые предоставляют среду выполнения для выполнения логики автоматизации. С коробки они работают в одном репозитории, но их можно расширить для автоматизации как внутри, так и вне репозиториев.
  • GitHub Apps, у которого нет среды выполнения. Вместо этого они предоставляют идентификацию, права и доставку событий, чтобы ваши автоматизации, будь то внешние сервисы или рабочие процессы, могли аутентифицироваться и работать безопасно.

Большинство корпоративных автоматизации используют GitHub Apps и GitHub Actions вместе. Например, рабочий процесс, выполняющийся в GitHub Actions нем, может использовать GitHub App для получения кратковременного маркера, который позволяет выполнять задачи в репозиториях или организациях.

В этом руководстве объясняется, как GitHub Apps, внешние автоматизации и GitHub Actions дополнять друг друга, а также когда следует использовать каждый из них в вашей организации.

GitHub Apps

Предоставляет GitHub Appудостоверения, разрешения и события веб-перехватчика , необходимые для автоматизации в репозиториях, организациях или организации. GitHub Apps сами по себе не выполняют логику, они позволяют другим системам делать это.

GitHub Apps поддержка корпоративной автоматизации с помощью предложения:

  • Детализированные разрешения на соблюдение принципов наименьших привилегий
  • Инсталляции с объёмом на уровне предприятия, организации или репозитория
  • Кратковременные токены для безопасного доступа
  • Отдельные идентичности с полной проверяемостью
  • Делегированное администрирование с помощью GitHub App роли руководителя
  • Согласованность в масштабах при принадлежащем корпоративной учетной записи

Что включить GitHub Apps ?

GitHub Apps позволяет автоматизации писать в другом месте, например внешние службы или шаги рабочего процесса, выполнять действия с GitHub API в рамках предоставленных разрешений. Рассмотрим пример.

  • Получение событий webhook и запуск внешних сервисов
  • Включение рабочего процесса вне его стандартного репозитория
  • GitHub Интеграция с сторонними системами
  • Координация изменений во многих репозиториях
  • Эксплуатация долгоживущих ботов или сервисов, отслеживающих активность на корпоративном уровне

GitHub Actions

GitHub Actions предоставляет GitHubвстроенную среду выполнения для выполнения логики автоматизации внутри репозиториев. Рабочие процессы выполняются на локальных запусках и идеально подходят для задач, связанных с изменениями кода или событиями репозитория.

Применение GitHub Actions для:

  • CI/CD (сборка, тестирование, развертывание)
  • Проверки и валидации pull request
  • Задачи по поддержанию на уровне репозитория
  • События-ориентированные рабочие процессы, реагирующие на push-запросы, теги или обновления проблем
  • Запланированные задания с cron

Использование GitHub ActionsGitHub Apps

GitHub Actions и GitHub Apps глубоко подключены:

  • Разрешения рабочего процесса сопоставляются непосредственно с GitHub App разрешениями.
  • Рабочие процессы могут проходить проверку подлинности в качестве конкретного GitHub App использования actions/create-github-app-token.
  • GitHub Apps может активировать рабочие процессы с помощью таких событий, как repository_dispatch.

Внешние автоматизации и сервисы

Внешние автоматизации выполняются вне GitHub собственной инфраструктуры. Обычно такие услуги:

  • Получение событий веб-перехватчика из GitHub App
  • GitHub App Использование маркеров кратковременной установки
  • Выполнение долгосрочной или межкорпоративной логики
  • Интеграция с внешними бизнес-системами

Вот некоторые примеры.

  • Управление конфигурациями на уровне всей организации
  • Службы по исполнению политики
  • Мультирепозиторий кода или синхронизация метаданных
  • Генерация отчетов о соблюдении требований
  • Межорганизационное управление вопросами или pull request-запросами

Все они зависят от GitHub Apps проверки подлинности, удостоверения и событий, а не для выполнения.

Как эти компоненты работают вместе

Большинство корпоративных автоматизации использует сочетание внешних GitHub Appsслужб и GitHub Actions для достижения надежных масштабируемых рабочих процессов.

Рассмотрим пример.

  1. Предприятие GitHub App получает веб-перехватчик при создании нового репозитория и отправляет полезные данные веб-перехватчика на сервер, на который выполняется внешняя служба.
  2. Внешний сервис стандартизирует необходимые настройки и предоставляет ресурсы.
  3. Служба активирует рабочий GitHub Actions процесс в репозитории.
  4. Рабочий процесс выполняет CI, развёртывает шаблоны или настраивает сканирование.

Каждый компонент выполняет отдельный уровень автоматизации.

Когда использовать каждый тип автоматизации

Используйте следующее GitHub App :

  • Аутентификация или разрешение на работу во многих репозиториях
  • Интеграция с внешними системами
  • Автоматизации, управляемые вебхуками
  • Долгосрочные или корпоративные рабочие процессы
  • Аудитируемость и разделение идентичности

Используйте внешние автоматизации , когда это необходимо:

  • Логика, которая выполняется непрерывно или вне GitHub
  • Интеграция с внутренними системами

Используйте при GitHub Actions необходимости:

  • Конвейеры CI/CD
  • Автоматизация с областью действия репозитория
  • Автоматические проверки, связанные с событиями репозитория
  • Выполнение логики с помощью GitHubинфраструктуры runner

Используйте GitHub Apps и GitHub Actions вместе , когда:

  • Рабочий процесс должен действовать вне стандартных разрешений репозитория
  • Необходимо GitHub App активировать рабочий процесс
  • Внешняя логика оркестрирует выполнение внутри репозитория
  • Корпоративные политики или рабочие процессы требуют как идентичности, так и среды выполнения

Дальнейшие шаги

Узнайте, как разрабатывать и управлять ими GitHub Apps на корпоративном уровне в Создание приложений GitHub для вашего предприятия.