الهدف
استقبال أحداث GitHub عبر POST /api/v1/webhooks/github، التحقق من صحة التوقيع، ومعالجة أحداث push لربط الالتزامات بالمشروع الصحيح.
الخطوات
- أرسل GitHub الطلب إلى
/api/v1/webhooks/githubمع ترويساتX-GitHub-EventوX-Hub-Signature-256. - يبحث النظام عن المستودع النشط الذي يطابق سره توقيع الطلب عبر HMAC-SHA256.
- عند تطابق التوقيع ومع نوع حدث
push، تُنسَّق الالتزامات وتُرسل للوظيفة الخلفيةProcessGitHubPushJobللمعالجة. - تُعاد استجابة
{"status":"ok"}عند نجاح الاستقبال.
رسائل الخطأ
- 401 "Invalid signature" — التوقيع لا يطابق أي سر لمستودع نشط.
- 405 — الطلب لا يستخدم طريقة POST.
نصائح
- اضبط سر الـ Webhook في إعدادات المستودع ليطابق
webhook_secretالمسجل في النظام. - المعالجة غير متزامنة؛ استجابة النجاح لا تعني انتهاء معالجة الالتزامات.
الأذونات
نقطة عامة؛ الأمان يعتمد على التحقق من توقيع الطلب (HMAC) وليس على مصادقة مستخدم.