Eine Python -Bibliothek, die Flask -Blaupausen für den Empfang von Github, Gitlab oder Gitea Webhooks und das Handeln auf sie bietet. Die Bibliothek bietet Webhooks, die automatische Bereitstellung, Tests und Integrationen ermöglichen. Aufgrund der offenen Art des Blaupauses kann dieses Verhalten dank des sehr offenen Abhängigkeitsbaums der Klassenklassen leicht angepasst werden.
Richten Sie das Webhook während des Setups auf der Git -Seite ein. Achten Sie unbedingt auf die Möglichkeiten, jede Art von geheimen Schlüssel einzugeben. Sie benötigen diesen Schlüssel später, wenn Sie die Webhook -Überprüfung aktivieren möchten . Dies ist etwas, das ich Ihnen sehr empfehlen möchte . Für Github wäre das die geheime Saite, die Sie während der Erstellung anbieten, für Gitlab das geheime Token und für Gitea das Autorisierungs -Token.
Installieren Sie dieses Paket
Verwenden von PIP
pip install gitAppWebhookDurch Klonen des Repositorys
git clone https://github.com/TCA166/gitWebhook.git
pip install -r gitWebhook/requirements.txtDurch Einbeziehung dieses Repo als Submodul
git submodule add https://github.com/example/repo.git gitWebhook
pip install -r gitWebhook/requirements.txt Während der Installation des PIP -Pakets als jedes andere Paket das Ding mit diesem Repo -Ordner ist, dass es wie ein lokales Paket funktioniert. Das bedeutet, dass Sie mit dem Einklonen dieses Repo in Ihren Projektordner gitWebhook importieren können, als ob sie über PIP installiert wäre. Gleiches gilt für das Hinzufügen als Submodule mit dem zusätzlichen Vorteil, dass Git versteht, was besser los ist.
Erstellen Sie eine Instanz von webhookBlueprint (oder einer der Unterklassen) mit Ihren Einstellungen
import gitWebhook
wb = gitWebhook . webhookBlueprint ( token , url_prefix = "/" )Registrieren Sie die Instanz in einer Flask -App Ihrer Wahl
from flask import Flask
app = Flask ( __name__ )
app . register_blueprint ( wb )Wenn Sie verloren sind, können Sie sich immer die offiziellen Github -Ressourcen ansehen oder WSGI.PY ansehen, bei dem sich ein Beispiel für ein Beispiel für ein konfiguriertes Flask -WebApp befindet.
Diese Bibliothek bietet eine grundlegende, von Blaupause abgeleitete Klasse, um nur Webhooks und einige abgeleitete Klassen mit unterschiedlichen Webhook -Verarbeitungsfunktionen zu empfangen.
Diese sehr grundlegende Klasse selbst verfügt über keine Webhook -Verarbeitungsfunktionen, sondern fungiert als Basis, aus der Webhook -Empfangsblaupausen abgeleitet werden können. Es implementiert die gesamte Überprüfung, die für GitHub- und Gitlab -Entwurf erforderlich ist, und als solche sollte die Klasse sein, aus der Sie sich abgeben sollten.
Diese von webhookBlueprint abgeleitete Klasse soll als Mittel zur Automatisierung von Bereitstellungen und Testen auf Servern verwendet werden. Wenn Sie keine GitHub -Aktionen verwenden möchten, können Sie mit diesem registrierten Blaupause jederzeit eine Flask -App verwenden.
Nach Erhalt einer POST an den / Endpunkt der Blaupause:
git pull Diese Klasse, die von webhookBlueprint abgeleitet ist, soll als Mittel zur Integration verschiedener Dienste verwendet werden. Sie bieten es in der Initialisierung mit einer Liste von Callable , die Webhook -Nutzlasten als einzelne Argumentation aufnehmen. Diese Funktionen werden zum Empfang eines Webhooks aufgerufen. Daher können Sie Dienste problemlos in diese Klasse integrieren, indem Sie einfach eine Integration in einem so Callable ermöglichen.
Nach Erhalt einer POST an den / Endpunkt der Blaupause:
functions enthaltenen Funktionen aufrufenSie können einen der Klassen auf zwei Arten leicht nach Ihren Wünschen optimieren.
webhookToken bereitstellen (oder nicht)unittest.testSuite -Instanz (Pullerwebhookblueprint) bereitstellen.logging.Logger -InstanzreceiveWebhook und processWebhook . Überschreiben Sie die ersteren, um zu ändern, wie die RAW -Anfrage bearbeitet und verifiziert wird. Letztere überschreiben, um das zu ändern, was getan wird, sobald der Webhook überprüft wird. Diese Arbeit ist unter der MIT -Lizenz lizenziert.