Jak zdalnie wyzwalać akcje GitHub za pomocą elementów webhook
GitHub Actions to usługa CI/CD, która może uruchamiać kompilacje i testy bazy kodu Twojego projektu. Zwykle Akcje są uruchamiane automatycznie przy nowych zatwierdzeniach, ale można je również uruchomić zdalnie za pomocą powiadomień webhook.
Dlaczego warto korzystać z webhooków?
Kompilacje akcji są uruchamiane na podstawie zdarzeń w Twoim repozytorium. Zwykle oznacza to uruchamianie kompilacji i testów za każdym razem, gdy zostanie wykonane nowe zatwierdzenie, oznaczone wydanie lub żądanie ściągnięcia. Ponieważ jest to podstawowy sposób zmiany kodu, dotyczy to większości przypadków.
Jeśli jednak polegasz na innych wersjach oprogramowania jako zależnościach, dość często wymaga się regularnych kompilacji, nawet jeśli kod się nie zmienia. Ponieważ GitHub nie wie, kiedy Twoje zależności zostaną zaktualizowane, będziesz musiał ręcznie wypchnąć nową otagowaną wersję lub ponownie uruchomić poprzednią kompilację, aby odbudować ze zaktualizowaną zależnością.
Webhooki to sposób na automatyczną obsługę tego problemu poprzez rozmowę zewnętrznej aplikacji z GitHubem w celu uruchomienia nowej kompilacji. Webhooki mogą być łatwo wysyłane przez dowolną aplikację zdolną do wysyłania żądań HTTP, która obejmuje dowolny język programowania, ale także narzędzia wiersza poleceń, takie jak curl
.
Innym częstym przypadkiem użycia jest generowanie witryn statycznych. Ramy, takie jak Gatsby, wymagają przebudowy witryny za każdym razem, gdy zmienia się treść. Często odbywa się to ręcznie, ale można to zautomatyzować za pomocą usług zarządzania treścią za pomocą elementów webhook.
Będziesz chciał sprawdzić, czy cokolwiek robisz, nie można osiągnąć za pomocą istniejących wyzwalaczy GitHub Actions. Istnieje zaskakująca liczba wbudowanych wyzwalaczy , o których można przeczytać na GitHub Wiki. Na przykład możesz ustawić harmonogram uruchamiania kompilacji opartych na składni cron , co może zaspokoić Twoje potrzeby, jeśli potrzebujesz regularnych kompilacji w określonym czasie.
Konfigurowanie wyzwalacza elementu webhook dla akcji Github
Wyzwalaczem, którego będziemy używać do uruchamiania akcji z elementów webhook, jest , który jest używany w przypadku zewnętrznych elementów webhook. repository_dispatch
Po pierwsze, będziesz chciał dodać wyzwalacz do sekcji „Włączone” pliku przepływu pracy. To nie musi zastępować innych wyzwalaczy, więc nadal możesz mieć ten przepływ pracy działający zarówno w przypadku zatwierdzeń, jak i elementów webhook.
Wyzwalacz repository_dispatch
może przyjmować opcjonalny parametr typu zdarzenia, którego można użyć do filtrowania między różnymi elementami webhook, jeśli chcesz, aby jedno repozytorium akceptowało wiele elementów webhook.
To wszystko, co jest wymagane po stronie GitHub, a teraz możemy wysłać webhooka. Format adresu URL jest następujący i akceptuje tylko żądania POST:
Jedną rzeczą, którą musisz ustawić, jest nagłówek autoryzacji. Jest to irytujące, ale ma sens — w przeciwnym razie każdy może wysyłać powiadomienia webhook do Twojego repozytorium.
"Accept": "application/vnd.github+json"
"Authorization": "token {personal_access_token}"
Na koniec musisz ustawić event_type
z treścią JSON na żądanie:
Możesz wygenerować osobisty token dostępu na podstawie ustawień osobistych lub ustawień organizacji. Przejdź do ustawień, kliknij „Ustawienia programisty” i wygeneruj nowy token. Ten token będzie wymagał pozwolenia na dostęp do repozytorium i jego działań.
Po uzyskaniu tokena możesz przesyłać autoryzowane elementy webhook. Przydatne jest użycie narzędzia do debugowania interfejsu API, takiego jak Postman lub curl, aby sprawdzić, czy działa; jeśli webhook przejdzie pomyślnie, otrzymasz odpowiedź 204 Brak treści, a przepływ pracy zobaczysz na karcie Czynności z typem zdarzenia użytym jako tytuł.
Gdy webhook zacznie działać, musisz skonfigurować zewnętrzną aplikację, aby z niego korzystała i w pełni podłączyć przepływ pracy.
Dodaj komentarz