مكتبة Python التي توفر مخططات Flask لتلقي GitHub أو Gitlab أو Gitea Webhooks وتصرف عليها. توفر المكتبة صقور الويب التي تسمح بالنشر التلقائي والاختبار والتكامل. ومع ذلك ، نظرًا للطبيعة النهائية المفتوحة للمخطط ، يمكن تخصيص هذا السلوك بسهولة بفضل شجرة التبعية للفئة المفتوحة للغاية.
قم بإعداد WebHook على جانب GIT أثناء الإعداد ، تأكد من إيلاء اهتمام وثيق لأي فرص لإدخال أي نوع من المفاتيح السري. ستحتاج إلى هذا المفتاح لاحقًا إذا كنت ترغب في تمكين التحقق من Webhook ، فهذا شيء أنصحك كثيرًا . بالنسبة إلى Github ، ستكون هذه هي السلسلة السرية التي تقدمها أثناء الخلق ، بالنسبة لـ Gitlab التي ستكون الرمز المميز السري وللجيتيا التي ستكون رمز التفويض.
تثبيت هذه الحزمة
باستخدام 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 كطاقة أخرى ، فإن الشيء مع مجلد REPO هذا هو أنه يعمل مثل الحزمة المحلية. هذا يعني أن استنساخ هذا الريبو في مجلد المشروع الخاص بك سيسمح لك باستيراد 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.
توفر هذه المكتبة فئة مشتقة من المخططات الأساسية لاستلامها فقط ويب ويندبون وبعض الفئات المشتقة مع إمكانيات معالجة Webhook المختلفة.
لا تحتوي هذه الفئة الأساسية نفسها على إمكانيات معالجة Webhook ، ولكن تعمل كقاعدة يمكن من خلالها اشتقاق مخططات WebHook التي تتلقى مخططات. إنه ينفذ بالكامل جميع التحقق المطلوب لخطود GitHub و Gitlab ، وبالتالي يجب أن يكون الفصل الذي يجب أن تستمد منه.
يهدف هذا الفئة المستمدة من webhookBlueprint إلى استخدامها كوسيلة لأتمتة النشر والاختبار على الخوادم. إذا كنت لا ترغب في استخدام إجراءات GitHub ، فيمكنك دائمًا استخدام تطبيق Flask مع تسجيل هذا المخطط.
عند استلام طلب POST إلى / نهاية المخطط:
git pull يهدف هذا الفئة المستمدة من webhookBlueprint إلى استخدامها كوسيلة لدمج الخدمات المختلفة. يمكنك تقديمها عند التهيئة مع قائمة بأخذ حمولة WebHook Callable كوسيطة واحدة ، وسيتم استدعاء هذه الوظائف عند تلقي webhook. وبالتالي ، يمكنك دمج الخدمات بسهولة مع هذه الفئة من خلال مجرد إجراء التكامل في مثل هذا Callable .
عند استلام طلب POST إلى / نهاية المخطط:
functionsيمكنك بسهولة تعديل أي من الفصول حسب رغبتك بطريقتين.
webhookTokenunittest.testSuite (pullerwebhookblueprint)logging.LoggerreceiveWebhook و processWebhook . تجاوز الأول لتغيير كيفية معالجة الطلب الخام والتحقق منه. تجاوز هذا الأخير لتغيير ما يتم القيام به بمجرد التحقق من webhook. هذا العمل مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.