В этом руководстве мы рассмотрим, как можно запустить GitHub Action с помощью HTTP-запроса, используя команду curl.
Это очень быстро и просто, поэтому давайте посмотрим, как запустить GitHub Action в несколько простых шагов. Для начала давайте вспомним, что такое curl.
Curl
Curl расшифровывается как клиентский URL. Это инструмент командной строки, который мы можем легко использовать для передачи данных на сервер и получения информации с сервера.
Он позволяет нам общаться с сервером, указывая его адрес. Мы будем использовать curl для отправки API-запросов.
Для успешного запуска Github Action необходимо выполнить три основных шага:
- Создать Github Action
- Сгенерировать персональный токен доступа
- Выполнить HTTP-запрос.
Первый шаг
Вы можете использовать API GitHub для вызова события webhook, называемого repository_dispatch
, когда вам нужно запустить рабочий процесс для действий, которые происходят вне GitHub. Мы вызываем действие вне GitHub, поэтому мы должны создать его с событием repository_dispatch
.
Теперь создайте новый GitHub Action с событием repository_dispatch
. Это такое же событие, которое используется при запуске через пользовательский интерфейс. Я создал файл .yml, который вы можете увидеть ниже.
name: Do Something That Needs Scheduled
on:
repository_dispatch:
types: do-something
jobs:
build:
name: Run Some Thing
runs-on: ubuntu-latest
steps:
- name: Do Something
run: echo Doing Something...
Второй шаг
Для запуска GitHub Action через команду curl вам нужен персональный токен доступа для использования API GitHub. Поэтому убедитесь, что у вас есть такой токен доступа, если нет, вы можете создать новый, используя следующую ссылку.
Убедитесь, что вы добавили права repo
и workflow
.
Третий шаг
Чтобы вызвать пользовательское событие repository_dispatch
, необходимо отправить POST-запрос в конечную точку API GitHub.
Укажите имя event_type
для описания типа действия.
Чтобы запустить выполнение рабочего процесса, также укажите в конфиге, что нужно использовать события repository_dispatch
.
curl -H "Accept: application/vnd.github.everest-preview+json"
-H "Authorization: token <your personal access token>"
--request POST
--data '{"event_type": "do-something"}'
https://api.github.com/repos/<username>/<repo>/dispatches
Выполните приведенную выше команду в терминале.
Если вы хотите проверить, запускается ли GitHub Action или нет, вы можете сделать это с помощью следующей команды:
curl -H "Accept: application/vnd.github.everest-preview+json"
-H "Authorization: token <your personal access token>"
--request GET
--data '{"event_type": "do-something"}'
https://api.github.com/repos/<username>/<repo>/actions/runs
Источник: https://www.kobzarev.com/programming/trigger-a-github-action-with-an-http-request/