Uma biblioteca Python que fornece plantas de frasco para receber webhooks Github, Gitlab ou Gitea e agir sobre eles. A biblioteca fornece webhooks, permitindo implantação automática, teste e integrações. No entanto, devido à natureza aberta do plano, esse comportamento pode ser facilmente personalizado, graças à árvore de dependência de classe muito aberta.
Configure o webhook do lado Git durante a configuração Certifique -se de prestar muita atenção a qualquer oportunidade de inserir qualquer tipo de chave secreta. Você precisará dessa chave mais tarde, se desejar ativar a verificação do webhook , isso é algo que eu aconselho muito . Para o Github, essa seria a sequência secreta que você fornece durante a criação, para o Gitlab que seria o token secreto e para Gitea que seria o token de autorização.
Instale este pacote
Usando pip
pip install gitAppWebhookClonando o repositório
git clone https://github.com/TCA166/gitWebhook.git
pip install -r gitWebhook/requirements.txtIncluindo este repo como submódulo
git submodule add https://github.com/example/repo.git gitWebhook
pip install -r gitWebhook/requirements.txt Ao instalar o pacote PIP, funciona como qualquer outro pacote com esta pasta repo é que ele funciona como um pacote local. Isso significa que clonar esse repositório na pasta do projeto permitirá que você importe gitWebhook como se estivesse instalado via PIP. O mesmo se aplica à adição de submodule com o benefício adicional do Git, entendendo o que está acontecendo melhor,
Crie uma instância do webhookBlueprint (ou de suas subclasses) com suas configurações
import gitWebhook
wb = gitWebhook . webhookBlueprint ( token , url_prefix = "/" )Registre a instância em um aplicativo de frasco de sua escolha
from flask import Flask
app = Flask ( __name__ )
app . register_blueprint ( wb )Se você está perdido, sempre pode olhar para os recursos oficiais do GitHub ou olhar para o wsgi.py onde está localizado um exemplo de FlaskpApp de Flash.
Esta biblioteca fornece uma classe básica derivada de plano para receber apenas webhooks e algumas classes derivadas com diferentes recursos de processamento da webhook.
Essa classe muito básica em si não possui recursos de processamento da webhook, mas funciona como uma base a partir da qual a WebHook que recebe projetos pode ser derivada. Ele implementa totalmente toda a verificação necessária para os planos do GitHub e do Gitlab e, como tal, deve ser a classe que você deve derivar.
Esta classe derivada do webhookBlueprint pretende ser usada como um meio de automatizar a implantação e o teste em servidores. Se você não deseja usar ações do GitHub, sempre pode usar um aplicativo de frasco com este plano registrado.
Ao receber uma solicitação POST para o / endpoint the Blueprint:
git pull Esta classe derivada do webhookBlueprint pretende ser usada como um meio de integrar diferentes serviços. Você o fornece na inicialização com uma lista de Callable de compra de webhook como um único argumento, e essas funções serão chamadas ao receber um webhook. Assim, você pode facilmente integrar serviços a esta classe, simplesmente fazendo com que a integração aconteça em tal Callable .
Ao receber uma solicitação POST para o / endpoint the Blueprint:
functionsVocê pode facilmente ajustar qualquer uma das classes do seu gosto de duas maneiras.
webhookTokenunittest.testSuite (PullerwebhookbluePrint)logging.LoggerreceiveWebhook e processWebhook . Substitua o primeiro a mudar a maneira como a solicitação bruta é tratada e verificada. Substitua o último para alterar o que é feito quando o webhook for verificado. Este trabalho é licenciado sob a licença do MIT.