AllInfo

So lösen Sie GitHub-Aktionen remote mithilfe von Webhooks aus

GitHub Actions ist ein CI/CD-Dienst, der Builds und Tests auf der Codebasis Ihres Projekts ausführen kann. Normalerweise werden Aktionen automatisch bei neuen Commits ausgelöst, sie können aber auch remote mithilfe von Webhook-Benachrichtigungen gestartet werden.

Warum Webhooks verwenden?

Aktionsbuilds werden basierend auf Ereignissen in Ihrem Repository ausgelöst. In der Regel bedeutet dies, dass Builds und Tests immer dann ausgeführt werden, wenn ein neues Commit, ein getaggtes Release oder eine Pull-Anfrage gestellt wird. Da dies die primäre Art und Weise ist, wie sich Ihr Code ändert, deckt dies die meisten Fälle ab.

Wenn Sie sich jedoch auf andere Softwareversionen als Abhängigkeiten verlassen, ist es ziemlich üblich, regelmäßige Builds zu erfordern, selbst wenn es sich um Code handelt ändert sich nicht. Da GitHub nicht weiß, wann Ihre Abhängigkeiten aktualisiert werden, müssen Sie manuell eine neue getaggte Version pushen oder den vorherigen Build neu starten, um mit der aktualisierten Abhängigkeit neu zu erstellen.

Webhooks sind eine Möglichkeit, dies automatisch zu handhaben, indem eine externe Anwendung mit GitHub kommuniziert, damit Sie einen neuen Build auslösen können. Webhooks können problemlos von jeder Anwendung gesendet werden, die HTTP-Anfragen stellen kann, einschließlich aller Programmiersprachen, aber auch Befehlszeilentools wie Curl.

Ein weiterer häufiger Anwendungsfall ist die statische Site-Generierung. Frameworks wie Gatsby erfordern, dass die Website bei jeder Änderung des Inhalts neu erstellt wird. Dies geschieht oft manuell, kann aber durch Content-Management-Dienste mithilfe von Webhooks automatisiert werden.

Sie sollten sicherstellen, dass das, was Sie tun, nicht mit vorhandenen GitHub Actions-Triggern erreicht werden kann. Es gibt überraschend viele integrierte Trigger, über die Sie im GitHub-Wiki nachlesen können. Sie können beispielsweise einen Zeitplan für die Ausführung von Builds basierend auf der Cron-Syntax einrichten, der Ihre Anforderungen abdeckt, wenn Sie regelmäßige Builds zu einem bestimmten Zeitpunkt benötigen.

Einrichten eines Webhook-Triggers für Github-Aktionen

Zunächst möchten Sie sicherstellen, dass Ihr GitHub Actions-Workflow ordnungsgemäß eingerichtet ist und ohne den Webhook einwandfrei funktioniert. Dies hängt vollständig von Ihrer Codebasis ab, aber GitHub verfügt über zahlreiche vorgefertigte Vorlagen, und Sie können unseren Leitfaden zum Einrichten eines Workflows lesen, um mehr zu erfahren.

VERWANDTE: So verwenden Sie Github-Aktionen zur Automatisierung Ihrer Repository-Builds

Der Auslöser, den wir zum Ausführen von Aktionen von Webhooks verwenden werden, ist „repository_dispatch“, der für externe Webhooks verwendet wird.

Zunächst möchten Sie den Auslöser zur Option „Ein“ hinzufügen. Abschnitt Ihrer Workflow-Datei. Dies muss die anderen Trigger nicht ersetzen, sodass Sie diesen Workflow weiterhin sowohl für Commits als auch für Webhooks ausführen können.

Der Auslöser „repository_dispatch“ kann einen optionalen Ereignistypparameter annehmen, der zum Filtern zwischen verschiedenen Webhooks verwendet werden kann, wenn Sie möchten, dass ein einzelnes Repository mehrere Webhooks akzeptiert.

Das ist alles, was erforderlich ist auf GitHub-Seite, und jetzt können wir den Webhook senden. Das URL-Format ist wie folgt und akzeptiert nur POST-Anfragen:

https://api.github.com/repos/{username}/{repo}/dispatches

Eines müssen Sie tun festgelegt ist jedoch der Authorization-Header. Das ist ärgerlich, macht aber durchaus Sinn. Andernfalls könnte jeder Webhook-Benachrichtigungen an Ihr Repo senden.

„Accept“: „application/vnd.github+json“ „Authorization“: „token {personal_access_token}“

Zuletzt müssen Sie den event_type mit einem JSON-Body für die Anfrage festlegen:

{   “event_type”: “dependency_update” }

Sie können ein persönliches Zugriffstoken aus Ihren persönlichen oder Organisationseinstellungen generieren. Gehen Sie zu den Einstellungen, klicken Sie auf „Entwicklereinstellungen“ und klicken Sie auf „Entwicklereinstellungen“. und ein neues Token generieren. Dieses Token benötigt die Berechtigung, auf das Repository und seine Aktionen zuzugreifen.

< p>Sobald Sie das Token haben, können Sie autorisierte Webhooks übermitteln. Es ist nützlich, ein API-Debugging-Tool wie Postman oder Curl zu verwenden, um zu testen, ob es funktioniert. Wenn der Webhook durchläuft, erhalten Sie die Antwort „204 No Content“ und sehen, wie der Workflow auf der Registerkarte „Aktionen“ ausgeführt wird, wobei der Ereignistyp als Titel verwendet wird.

< img src="http://www.howtogeek.com/pagespeed_static/1.JiBnMqyl6S.gif" />

Sobald der Webhook funktioniert, müssen Sie Ihre externe Anwendung für die Verwendung konfigurieren es und bringen Sie Ihren Workflow vollständig in Schwung.

WEITER LESEN

Exit mobile version