Una biblioteca de Python que proporciona planos de matraz para recibir webhooks de Github, Gitlab o Gitea y actuar sobre ellos. La biblioteca proporciona webhooks que permiten la implementación automática, las pruebas e integraciones. Sin embargo, debido a la naturaleza abierta del plan, este comportamiento se puede personalizar fácilmente gracias al árbol de dependencia de clase muy abierto.
Configurar el webhook en el lado GIT durante la configuración Asegúrese de prestar mucha atención a cualquier oportunidad para ingresar cualquier tipo de clave secreta. Necesitará esa clave más adelante si desea habilitar la verificación del webhook , esto es algo que le aconsejo enormemente que haga . Para Github, esa sería la cadena secreta que proporciona durante la creación, para Gitlab ese sería el token secreto y para Gitea, ese sería el token de autorización.
Instalar este paquete
Usando Pip
pip install gitAppWebhookClonando el repositorio
git clone https://github.com/TCA166/gitWebhook.git
pip install -r gitWebhook/requirements.txtIncluido este repositorio como submódulo
git submodule add https://github.com/example/repo.git gitWebhook
pip install -r gitWebhook/requirements.txt Al instalar el paquete PIP funciona como cualquier otro paquete, lo que tiene esta carpeta de repo es que funciona como un paquete local. Eso significa que clonar este repositorio en la carpeta de su proyecto le permitirá importar gitWebhook como si estuviera instalado a través de PIP. Lo mismo se aplica con la adición como submódulo con el beneficio adicional de comprender git lo que está sucediendo mejor,
Cree una instancia de webhookBlueprint (o cualquiera de sus subclases) con su configuración
import gitWebhook
wb = gitWebhook . webhookBlueprint ( token , url_prefix = "/" )Registre la instancia dentro de una aplicación Flask de su elección
from flask import Flask
app = Flask ( __name__ )
app . register_blueprint ( wb )Si está perdido, siempre puede mirar los recursos oficiales de GitHub, o mirar wsgi.py, donde se encuentra un ejemplo de red de frascos configurado.
Esta biblioteca proporciona una clase derivada de planos básicos para recibir solo webhooks y algunas clases derivadas con diferentes capacidades de procesamiento de webhook.
Esta clase muy básica en sí no tiene capacidades de procesamiento de webhook, sino que funciona como una base a partir de la cual se pueden derivar planos de recepción del webhook. Implementa completamente toda la verificación requerida para los planos de GitHub y Gitlab y, como tal, debería ser la clase de la que debe obtener.
Esta clase derivada de webhookBlueprint está dirigida a usarse como un medio para automatizar la implementación y las pruebas en los servidores. Si no desea usar acciones de GitHub, siempre puede usar una aplicación Flask con este plan registrado.
Al recibir una solicitud POST al punto final el plan:
git pull Esta clase derivada de webhookBlueprint está dirigida a ser utilizada como un medio para integrar diferentes servicios. Usted proporciona en la inicialización con una lista de la toma Callable en las cargas útiles de Webhook como un solo argumento, y estas funciones se convocarán en recibir un webhook. Por lo tanto, puede integrar fácilmente los servicios con esta clase simplemente haciendo que la integración ocurra en tal Callable .
Al recibir una solicitud POST al punto final el plan:
functionsPuede ajustar fácilmente cualquiera de las clases a su gusto de dos maneras.
webhookTokenunittest.testSuite (PullerWebhookbluePrint)logging.LoggerreceiveWebhook y processWebhook . Anule el primero para cambiar la forma en que se maneja y verifica la solicitud sin procesar. Anule este último para cambiar lo que se hace una vez que se verifica el webhook. Este trabajo tiene licencia bajo la licencia MIT.