Библиотека Python, предоставляющая чертежи Flask для получения GitHub, Gitlab или Gitea Webhooks и действует на них. Библиотека предоставляет веб -крючки, позволяющие автоматическое развертывание, тестирование и интеграции. Однако из -за открытой природы чертежа это поведение может быть легко настроено благодаря очень открытому дереву зависимости класса.
Настройка WebHook на стороне GIT во время установки Обязательно обратите пристальное внимание на любые возможности для ввода любого секретного ключа. Вам понадобится этот ключ позже, если вы хотите включить проверку WebHook , это то, что я очень советую вам . Для GitHub это будет секретной строкой, которую вы предоставляете во время создания, для Gitlab, это будет секретный токен и для Gitea, это будет токен авторизации.
Установите этот пакет
Использование PIP
pip install gitAppWebhookКлонируя репозиторий
git clone https://github.com/TCA166/gitWebhook.git
pip install -r gitWebhook/requirements.txtВключив этот репо в подмодуле
git submodule add https://github.com/example/repo.git gitWebhook
pip install -r gitWebhook/requirements.txt При установке функций пакета PIP как любой другой пакет, с этой папкой репо является то, что он функционирует как локальный пакет. Это означает, что клонирование этого репо в папку проекта позволит вам импортировать gitWebhook как если бы он был установлен через PIP. То же самое относится и к добавлению в качестве подмодуля с дополнительным преимуществом GIT, понимая, что происходит лучше,
Создайте экземпляр webhookBlueprint (или любой из его подклассов) с вашими настройками
import gitWebhook
wb = gitWebhook . webhookBlueprint ( token , url_prefix = "/" )Зарегистрируйте экземпляр в приложении Flask по вашему выбору
from flask import Flask
app = Flask ( __name__ )
app . register_blueprint ( wb )Если вы потеряны, вы всегда можете посмотреть на официальные ресурсы GitHub или посмотреть на wsgi.py, где находится пример, настроенный Flask WebApp.
Эта библиотека предоставляет базовый класс, полученный в плане, только для получения только веб -крючков и нескольких полученных классов с различными возможностями обработки веб -крюков.
Этот самый базовый класс сам не обладает возможностями обработки веб -крючков, но функционирует как база, из которой могут быть получены чертежи, получающие веб -хук. Он полностью реализует всю проверку, необходимую для чертех Github и Gitlab, и, как таковой, должен быть класс, из которого вы должны получить.
Этот класс, полученный из webhookBlueprint , направлен на использование в качестве средства автоматизации развертывания и тестирования на серверах. Если вы не хотите использовать действия GitHub, вы всегда можете использовать приложение Flask с зарегистрированным планом.
Получив запрос на POST в / конечную точку плана:
git pull Этот класс, полученный из webhookBlueprint , направлен на использование в качестве средства интеграции различных услуг. Вы предоставляете его при инициализации со списком Callable приемов в Webhook Power Aloads в качестве единого аргумента, и эти функции будут вызваны при получении веб -крючка. Таким образом, вы можете легко интегрировать сервисы с этим классом, просто имея интеграцию в таком Callable .
Получив запрос POST в / конечную точку плана:
functionsВы можете легко настроить любой из классов по своему вкусу двумя способами.
webhookTokenunittest.testSuite (Pullerwebhookblueprint)logging.LoggerreceiveWebhook и processWebhook . Переопределите первое, чтобы изменить то, как обрабатывается и проверяется запрос RAW. Переопределите последнее, чтобы изменить то, что сделано, как только веб -крюк будет проверен. Эта работа лицензирована по лицензии MIT.