کنترل کننده Webhook

وب‌هوک به یک Callback از جنس HTTP در سمت سرور گفته می‌شود که توسط برنامه‌نویس تعیین می‌شود. این درخواست غالبا با متد POST بوده و در هنگام بروز یک رخداد خاص صدا زده می‌شود. با این پروژه می توانید آن ها را مدیریت کنید.

گیت هاب




تعریف

وب‌هوک به یک فراخوانی ( Callback ) از جنس HTTP در سمت سرور گفته می‌شود که توسط برنامه‌نویس تعیین می‌شود. این درخواست غالبا با متد POST بوده و در هنگام بروز یک رخداد خاص صدا زده می‌شود.

به عنوان مثال ، فرض کنید یک مخزن روی سایت گیت‌هاب دارید و می‌خواهید هر بار که به آن مخزن Push می‌کنید، به نحو خاصی به شما اطلاع داده شود (مثلا به حساب تلگرام شما یک پیام ارسال شود.) در این صورت، یک سرویس تحت وب ایجاد می‌کنید که هربار URL مربوطه‌اش صدا زده شود، این رخداد را از طریق تلگرام به اطلاع شما برساند. سپس URL سرویس تحت وب ایجاد شده را در بخش Webhook از تنظیمات مخزن‌تان اضافه می‌کنید.

بکتوری

این پروژه چیه ؟

در حال حاضر این پروژه مخصوص نرم افزار های مدیریت مخازن نرم افزاری مانند Github, Gitlab, Gitea و غیره طراحی شده ولی با تغییرات کوچک میتونید اون رو برای هر منظور دیگه ای استفاده کنید.

نصب و اجرا

این پروژه با استفاده از جاوا اسکریپت و NodeJS نوشته شده که اجرا کردنش ساده است. یا مستقیما خود پروژه رو با استفاده از Node اجرا کنید یا اینکه با Docker این کار رو انجام بدید :

git clone https://github.com/hatamiarash7/WebhookHandler
cd WebhookHandler
npm install
node hook.js

یا

docker pull hatamiarash7/webhook
docker run hatamiarash7/webhook

تنظیمات

برای کار با پروژه نیاز به یک فایل env. دارید که باید به این صورت تنظیم بشه :

SECRET=changeme
DB_CONNECTION="mongodb://localhost:27017/webhook"
PROVIDER=github
SIGNATURE="X-Hub-Signature"
LOG_LEVEL=info

استفاده

ابتدا در نرم افزار مورد نظر به قسمت تنظیمات Webhook مراجعه کنید. برای مثال در گیت هاب با چنین صفحه ای مواجه خواهید شد :

پس از تنظیم میتوانید پروژه را اجرا نمایید تا درخواست ها به آن ارسال شده و در پایگاه داده Mongo ذخیره شوند.

بعد از این چی ؟

توجه کنید که این پروژه فقط یک Parser ساده است و هیچگونه محیط گرافیکی نداره. در صورتی که نیاز به مصورسازی داده هاتون دارید خودتون دست به کار بشید 😊 یا اینکه محیط گرافیکی رو به همین پروژه اضافه کنید تا بقیه هم ازش بهره مند بشن 😍