Une bibliothèque Python fournissant des flocons à flacon pour recevoir GitHub, GitLab ou Gitea Webhooks et agir sur eux. La bibliothèque fournit des webhooks permettant le déploiement automatique, les tests et les intégrations. Cependant, en raison de la nature ouverte du plan, ce comportement peut être facilement personnalisé grâce à l'arbre de dépendance de classe très ouvert.
La configuration de la configuration du côté git pendant la configuration, assurez-vous de prêter une attention particulière à toutes les opportunités pour saisir toute sorte de clé secrète. Vous aurez besoin de cette clé plus tard si vous souhaitez permettre la vérification de Webhook , c'est quelque chose que je vous conseille grandement . Pour GitHub, ce serait la chaîne secrète que vous fournissez pendant la création, pour Gitlab, ce serait le jeton secret et pour Gitea ce serait le jeton d'autorisation.
Installez ce package
Utilisation de pip
pip install gitAppWebhookEn clonant le référentiel
git clone https://github.com/TCA166/gitWebhook.git
pip install -r gitWebhook/requirements.txtEn incluant ce repo en tant que sous-module
git submodule add https://github.com/example/repo.git gitWebhook
pip install -r gitWebhook/requirements.txt Lors de l'installation du package PIP, comme n'importe quel autre package, la chose avec ce dossier Repo est qu'il fonctionne comme un package local. Cela signifie que le clonage de ce dépôt dans votre dossier de projet vous permettra d'importer gitWebhook comme s'il avait été installé via PIP. Il en va de même pour ajouter que le sous-module avec l'avantage supplémentaire de la compréhension de Git ce qui se passe mieux,
Créez une instance de webhookBlueprint (ou l'une ou l'autre des sous-classes) avec vos paramètres
import gitWebhook
wb = gitWebhook . webhookBlueprint ( token , url_prefix = "/" )Enregistrez l'instance dans une application Flask de votre choix
from flask import Flask
app = Flask ( __name__ )
app . register_blueprint ( wb )Si vous êtes perdu, vous pouvez toujours consulter les ressources officielles GitHub ou consulter wsgi.py où se trouve un exemple Flask WebApp configuré.
Cette bibliothèque fournit une classe dérivée de base de base pour recevoir uniquement des webhooks et quelques classes dérivées avec différentes capacités de traitement WebHook.
Cette classe très basique elle-même n'a pas de capacités de traitement WebHook, mais fonctionne comme une base à partir de laquelle les plans de réception de webhook peuvent être dérivés. Il implémente entièrement toute la vérification requise pour les plans GitHub et GitLab et, en tant que tel, devrait être la classe dont vous devez dériver.
Cette classe dérivée de webhookBlueprint vise à être utilisée comme moyen d'automatiser le déploiement et les tests sur les serveurs. Si vous ne souhaitez pas utiliser les actions GitHub, vous pouvez toujours utiliser une application FLASK avec ce Blueprint enregistré.
Lors de la réception d'une demande POST au point de terminaison, le plan du plan:
git pull Cette classe dérivée de webhookBlueprint vise à être utilisée comme moyen d'intégrer différents services. Vous le fournissez lors de l'initialisation avec une liste de reprises Callable les charges utiles de webhook en tant qu'argument unique, et ces fonctions seront appelées lors de la réception d'un webhook. Ainsi, vous pouvez facilement intégrer des services à cette classe en faisant simplement se produire l'intégration dans un tel Callable .
Lors de la réception d'une demande POST au point de terminaison, le plan du plan:
functionsVous pouvez facilement modifier l'une des classes à votre goût de deux manières.
webhookTokenunittest.testSuite (PullerwebhookBlueprint)logging.LoggerreceiveWebhook et processWebhook . Remplacez le premier pour modifier la façon dont la demande brute est traitée et vérifiée. Remplacez ce dernier pour modifier ce qui est fait une fois le webhook vérifié. Ce travail est autorisé sous la licence du MIT.