Рубрики
Uncategorized

Запуск действий GitHub с использованием диспетчеров репозитория

TL; DR: Используя HTTP -запросы, вы можете отправлять диспетчеры репозитория, чтобы запустить действия GitHub Workflows g … с меткой GitHub, действиями, Slack, DevOps.

TL; DR : Используя HTTP -запросы, вы можете отправлять диспетчеры репозитория для запуска действий GitHub рабочие процессы

Действия GitHub является быстро растущей и быстро развивающейся платформой CI/CD, которая бесплатна для всех пользователей GitHub. Несмотря на то, что платформа все еще относительно молода, функции постоянно выпускаются командой действий и сообществом разработчиков, использующих платформу, и разработка действий с открытым исходным кодом для ИТ продолжает расширяться.

Одной из функций, которая была в передней части многих нынешних и потенциальных умов пользователей, является гибкость инициирования действий. Неудивительно, что запуск действий, основанных на коммитах, выпусках и ветвях, прост в настройке. GitHub также позволил запланировать задачи с использованием нотации Cron. Тем не менее, что становится менее очевидным, так это то, как пользователи могут либо запустить действие вручную, либо привести к тому, что сторонняя служба запускает действие. Другие платформы, такие как Jenkins, делают это простым с возможностью создания заданий с нажатия кнопки в своей веб -консоли или устанавливая плагины, которые позволяют удаленным сервисам выступать в качестве триггеров.

Хотя действия GitHub еще не имеют аналогичной функции в своей веб -консоли, эта функция существует в форме Репозитория отправки Анкет Диспетчерская репозитория, по сути, является просто HTTP -запросом в ваш репозиторий с просьбой Github начать любые действия или веб -крюк. Используя эту функцию Вы можете оба вручную запустить действия GitHub, используя диспетчеры репозитория, или вы можете настроить приложение для запуска действия, отправив запрос.

Настройка вашего действия

В вашем рабочем процессе YML Файл, вам нужно добавить триггер для на Ключ, который говорит, что рабочий процесс примет диспетчеры репозитория.

Самая простая конфигурация состоит в том, чтобы иметь триггер рабочего процесса при любой отправке репозитория:

on:
    repository_dispatch:

Однако, если у вас есть несколько рабочих процессов, которые могут быть вызваны отдельными диспетчерами, вы можете указать конкретные типы событий, которые запускают рабочий процесс.

on:
    repository_dispatch:
        types: [start-example-workflow]

В приведенном выше примере только отправляет с типом события "Start-Example-Workflow" запустит рабочий процесс.

Пользовательские параметры

На протяжении всего вашего действия вы также можете использовать информацию, предоставленную "Клиентская платная загрузка" отправки. Используя выражение

${{ github.event.client_payload.example-key }}

даст вам доступ ко всем данным, представленным в полезной нагрузке клиента. Это позволит вам использовать данные в качестве переменных среды для команд Bash или в качестве входов в другие действия.

Построение запроса

Полезная нагрузка репозитории довольно проста:

{
    "event_type": "my_event_type",
    "client_payload": {
        "example-key": "example-value"
    }
}

Этот запрос также нуждается в следующем наборе заголовков:

Accept:  application/vnd.github.everest-preview+json
Content-Type: application/json
Authorization: Bearer {{personal_access_token}}

На этом этапе я должен уточнить, что для запуска рабочего процесса запрос должен быть аутентифицирован с помощью токена личного доступа для пользователя, которому разрешено получить доступ к репозиторию.

Чтобы создать токен доступа, Следуйте этим шагам от GitHub И убедитесь, что вы дали токен доступ к сфере репо.

С этой полезной нагрузкой вы можете ПОЧТА запрос на https://api.github.com/repos/:owner/:repo/dispatches запустить рабочие процессы, которые настроены, чтобы принять отправку.

Используя почтальон

Если ваша цель состоит в том, чтобы просто запустить эти рабочие процессы нажатием кнопки, почтальон может быть одним из самых простых способов настроить эти Пост Запросы и отправьте им GitHub.

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

Оттуда вы должны добавить новую среду с вашим токеном личного доступа в качестве токена переменной.

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

Затем установите соответствующие заголовки.

Теперь вы можете установить соответствующую полезную нагрузку для отправки и отправить запрос. Если все правильно настроено, вы должны получить ответ на контент 204.

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

Что дальше?

Учитывая, что эти триггеры являются простыми HTTP -запросами, вы можете воспользоваться этой функцией, чтобы интегрировать свои действия с сторонними услугами. В следующей статье мы рассмотрим стратегии для запуска действий с интеграциями от таких услуг, как Слаб и Sanity.io , настраиваемая CMS.

Оригинал: «https://dev.to/teamhive/triggering-github-actions-using-repository-dispatches-39d1»