Perpustakaan Python yang menyediakan cetak biru labu untuk menerima webhook gitub, gitlab atau gitea dan bertindak atas mereka. Perpustakaan menyediakan webhooks yang memungkinkan untuk penyebaran otomatis, pengujian, dan integrasi. Namun karena sifat cetak biru akhir yang terbuka, perilaku ini dapat dengan mudah disesuaikan berkat pohon ketergantungan kelas akhir yang sangat terbuka.
Siapkan webhook di sisi git selama pengaturan pastikan untuk memperhatikan peluang apa pun untuk memasukkan semua jenis kunci rahasia. Anda akan membutuhkan kunci itu nanti jika Anda ingin mengaktifkan verifikasi webhook Ini adalah sesuatu yang sangat saya sarankan untuk Anda lakukan . Untuk GitHub itu akan menjadi string rahasia yang Anda berikan selama pembuatan, untuk Gitlab itu akan menjadi token rahasia dan untuk gitea yang akan menjadi token otorisasi.
Instal paket ini
Menggunakan pip
pip install gitAppWebhookDengan mengkloning repositori
git clone https://github.com/TCA166/gitWebhook.git
pip install -r gitWebhook/requirements.txtDengan memasukkan repo ini sebagai submodule
git submodule add https://github.com/example/repo.git gitWebhook
pip install -r gitWebhook/requirements.txt Saat menginstal Fungsi Paket PIP sebagai paket lain yang ada dengan folder repo ini adalah berfungsi seperti paket lokal. Itu berarti bahwa mengkloning repo ini ke folder proyek Anda akan memungkinkan Anda untuk mengimpor gitWebhook seolah -olah diinstal melalui PIP. Sama berlaku dengan menambahkan sebagai submodule dengan manfaat tambahan dari git memahami apa yang terjadi lebih baik,
Buat instance webhookBlueprint (atau salah satu subkelasnya) dengan pengaturan Anda
import gitWebhook
wb = gitWebhook . webhookBlueprint ( token , url_prefix = "/" )Daftarkan contoh dalam aplikasi Flask pilihan Anda
from flask import Flask
app = Flask ( __name__ )
app . register_blueprint ( wb )Jika Anda tersesat, Anda selalu dapat melihat sumber daya GitHub resmi, atau melihat wsgi.py di mana contoh Webapp Flask yang dikonfigurasi berada.
Perpustakaan ini menyediakan kelas turunan cetak biru dasar untuk hanya menerima webhooks dan beberapa kelas turunan dengan kemampuan pemrosesan webhook yang berbeda.
Kelas yang sangat mendasar ini sendiri tidak memiliki kemampuan pemrosesan webhook, tetapi berfungsi sebagai basis dari mana webhook yang menerima cetak biru mungkin berasal. Ini sepenuhnya mengimplementasikan semua verifikasi yang diperlukan untuk cetak biru GitHub dan Gitlab dan karenanya harus menjadi kelas yang harus Anda peroleh.
Kelas ini yang berasal dari webhookBlueprint bertujuan untuk digunakan sebagai sarana untuk mengotomatisasi penyebaran dan pengujian pada server. Jika Anda tidak ingin menggunakan tindakan GitHub, Anda selalu dapat menggunakan aplikasi Flask dengan cetak biru ini terdaftar.
Setelah menerima permintaan POST ke / endpoint cetak biru:
git pull Kelas ini yang berasal dari webhookBlueprint bertujuan untuk digunakan sebagai sarana untuk mengintegrasikan berbagai layanan. Anda memberikannya pada inisialisasi dengan daftar pengambilan Callable dalam muatan webhook sebagai argumen tunggal, dan fungsi -fungsi ini akan dipanggil setelah menerima webhook. Dengan demikian Anda dapat dengan mudah mengintegrasikan layanan dengan kelas ini hanya dengan memiliki integrasi terjadi dalam hal Callable .
Setelah menerima permintaan POST ke / endpoint cetak biru:
functionsAnda dapat dengan mudah mengubah kelas apa pun sesuai dengan kesukaan Anda dengan dua cara.
webhookTokenunittest.testSuite (PullerWebHookBlueprint)logging.LoggerreceiveWebhook dan processWebhook . Mengamati yang pertama untuk mengubah bagaimana permintaan mentah ditangani dan diverifikasi. Mengganti yang terakhir untuk mengubah apa yang dilakukan setelah webhook diverifikasi. Pekerjaan ini dilisensikan di bawah lisensi MIT.