مواد پر جائیں۔

ریپوزٹری ویب ہک سیٹ اپ

GitHub، GitLab، Forgejo، اور Gitea ریپوزٹریز کے لیے دستخط شدہ صرف پڑھنے کے لیے ویب ہکس ترتیب دیں۔

اس صفحے کی PAT/OAuth ہدایات ہر مخزن کا ویب ہک استعمال کرتی ہیں۔ GitHub App کنکشن ایک مرکزی ویب ہک اور ایپ مکالمے سے ترتیب پاتے ہیں۔

Repovio اپنے عام پولنگ وقفہ سے جلد ٹریک شدہ ریپوزٹری کو سنکرونائز کرنے کے لیے دستخط شدہ ویب ہکس حاصل کر سکتا ہے۔ یہ کبھی بھی فراہم کنندہ APIs کے ذریعے ویب ہکس کو تخلیق، اپ ڈیٹ، حذف یا جانچ نہیں کرتا ہے۔ ایک منتظم ہر ریپوزٹری ویب ہک کو دستی طور پر GitHub، GitLab، Forgejo، یا Gitea میں ترتیب دیتا ہے۔

ریپوزٹریز کھولیں، ٹریک شدہ ریپوزٹری کو منتخب کریں، اور اس کاریپوزٹری ویب ہک کارڈ استعمال کریں۔ کارڈ ریپوزٹری کے لیے مخصوص کال بیک یو آر ایل دکھاتا ہے، دستخط کرنے کا راز تیار کرتا یا قبول کرتا ہے، اور آخری قبول شدہ ترسیل کی اطلاع دیتا ہے۔ Repovio کبھی بھی وہ کنفیگریشن فراہم کنندہ کو نہیں بھیجتا ہے۔

ویب ہکس ایک اصلاح ہیں، سچائی کا ذریعہ نہیں۔ دستخط شدہ پے لوڈ کو کال بیک یو آر ایل کے ذریعے منتخب کردہ ریپوزٹری کی شناخت کرنی چاہیے۔ Repovio پھر کنفیگر کردہ صرف پڑھنے کے لیے فراہم کنندہ اڈاپٹر کے ذریعے موجودہ ڈیٹا کو پڑھتا ہے۔ قبول شدہ ڈیلیوری ایک پائیدار ریپوزٹری سنکرونائزیشن کو قطار میں رکھتی ہے۔ 15 سیکنڈ کے اندر موصول ہونے والی ترسیل کو یکجا کیا جاتا ہے۔ پہلے سے طے شدہ فال بیک پولنگ وقفہ 30 منٹ ہے۔

ایک ریپوزٹری ویب ہک کو ترتیب دیں۔

  1. ذخیرہ کو Repovio میں شامل کریں اور اس کا ریپوزٹری ویب ہک کارڈ کھولیں۔
  2. کال بیک URL کاپی کریں۔
  3. ایک منفرد، ہائی اینٹروپی دستخط کرنے کا راز بنائیں یا فراہم کنندہ کی طرف سے فراہم کردہ درست دستخطی ٹوکن چسپاں کریں۔ رسائی ٹوکن یا کسی دوسرے ذخیرہ کے راز کو کبھی بھی دوبارہ استعمال نہ کریں۔
  4. راز کو محفوظ کریں۔ Repovio اسے AES-256-GCM کے ساتھ انکرپٹ کرتا ہے اور اسے API کے ذریعے کبھی واپس نہیں کرتا ہے۔
  5. کال بیک یو آر ایل اور راز کو اس ریپوزٹری کے فراہم کنندہ کی ترتیبات میں ترتیب دیں۔
  6. TLS تصدیق کو فعال رکھیں اور ٹیسٹ ڈیلیوری بھیجیں۔

مستحکم کال بیکس /api/webhooks/<provider>/<repository-id> استعمال کرتی ہیں۔ ورژن شدہ /api/v1/webhooks/<provider>/<repository-id> کال بیکس بھی دستیاب ہیں۔ Repovio 0.2.9 اور اس سے پہلے کے فراہم کنندہ کے اکاؤنٹ کال بیک URLs کو مزید قبول نہیں کیا جاتا ہے۔ اپ گریڈ کرنے کے بعد، ہر ویب ہک کو اس کے ریپوزٹری کال بیک اور ایک نئے ریپوزٹری سیکرٹ کے ساتھ دوبارہ بنائیں۔

کامیاب ڈیلیوری { "accepted": true } کے ساتھ HTTP 202 واپس کرتی ہے۔ بار بار فراہم کنندہ کی ڈیلیوری آئی ڈیز { "accepted": true, "duplicate": true } واپس کرتے ہیں اور دوسری ہم آہنگی کو قطار میں نہیں لگاتے ہیں۔ نامعلوم یا غیر فعال ریپوزٹریز، غیر فعال فراہم کنندہ اکاؤنٹس، گمشدہ راز، غلط دستخط، غیر مماثل فراہم کنندہ کے ذخیرے کی IDs، اور غائب ڈیلیوری آئی ڈیز کو کنفیگریشن کی تفصیلات کو ظاہر کیے بغیر مسترد کر دیا جاتا ہے۔

قطار میں مطابقت پذیری API کے دوبارہ شروع ہونے سے بچ جاتی ہے۔ متعدد مثالیں ڈیٹا بیس لیز کا استعمال کرتی ہیں اور ایک ہی فراہم کنندہ اکاؤنٹ کو بیک وقت ہم آہنگ نہیں کرتی ہیں۔ شرح کی حد کے ہیڈر متاثرہ اکاؤنٹ کے لیے کام میں تاخیر کرتے ہیں، جبکہ باؤنڈڈ دوبارہ کوششیں عارضی ناکامیوں کو ہینڈل کرتی ہیں۔

GitHub ایکشنز

  1. ریپوزٹری کی ترتیبات → ویب ہکس کھولیں اورویب ہک شامل کریں کو منتخب کریں۔
  2. https://repovio.example.com/api/webhooks/github/<repository-id> کو بطور پے لوڈ URL استعمال کریں۔
  3. application/json کو منتخب کریں، مخزن کا راز چسپاں کریں، اور ورک فلو رنز (workflow_run) کو سبسکرائب کریں۔
  4. SSL تصدیق کو فعال رکھیں اور ویب ہک کو محفوظ کریں۔

Repovio خام باڈی پر X-Hub-Signature-256 کی توثیق کرتا ہے اور X-GitHub-Delivery کو کمزوری کے لیے استعمال کرتا ہے۔ GitHub کا ویب ہک ایونٹ کی دستاویزات دیکھیں۔

GitLab پائپ لائنز

  1. پروجیکٹ کی ترتیبات → ویب ہکس کھولیں اورنیا ویب ہُک شامل کریں کو منتخب کریں۔
  2. https://repovio.example.com/api/webhooks/gitlab/<repository-id> کو بطور URL استعمال کریں۔
  3. ایک سائننگ ٹوکن بنائیں اور Repovio ریپوزٹری کارڈ میں whsec_ سمیت اس کی مکمل قیمت محفوظ کریں۔
  4. پائپ لائن ایونٹس کو منتخب کریں، SSL تصدیق کو فعال رکھیں، محفوظ کریں اور ٹیسٹ ڈیلیوری بھیجیں۔

Repovio معیاری Webhooks HMAC-SHA256 دستخطوں کی توثیق کرتا ہے اور Idempotency کے لیے webhook-id کو ترجیح دیتا ہے۔ پرانی مثالوں کے لیے لیگیسی X-Gitlab-Token اور X-Gitlab-Event-UUID ہیڈرز تعاون یافتہ رہتے ہیں۔ GitLab کا ویب ہک دستاویزات دیکھیں۔

Forgejo ایکشنز

  1. ریپوزٹری کی ترتیبات → ویب ہکس کھولیں اور ایک مقامیForgejo JSON ویب ہُک شامل کریں۔
  2. https://repovio.example.com/api/webhooks/forgejo/<repository-id> کو بطور ہدف URL استعمال کریں۔
  3. مخزن کا راز چسپاں کریں اور پش ایونٹس کے علاوہ کسی بھی دستیاب ایکشن ایونٹس کو منتخب کریں۔
  4. TLS تصدیق کو فعال رکھیں اور ویب ہک کو محفوظ کریں۔

Repovio X-Forgejo-Signature کی توثیق کرتا ہے اور X-Forgejo-Delivery کو کمزوری کے لیے استعمال کرتا ہے۔ Gitea مطابقت پذیر ہیڈر Forgejo مطابقت کے لیے قبول کیے جاتے ہیں۔ Forgejo ویب ہک دستاویزات دیکھیں۔

Gitea ایکشنز

  1. ریپوزٹری کی سیٹنگز → ویب ہکس کھولیں اور ایک مقامیGitea JSON ویب ہُک شامل کریں۔
  2. https://repovio.example.com/api/webhooks/gitea/<repository-id> کو ہدف URL کے طور پر استعمال کریں۔
  3. مخزن کا راز چسپاں کریں اور پش ایونٹس کے علاوہ کسی بھی دستیاب ورک فلو ایونٹس کو منتخب کریں۔
  4. TLS تصدیق کو فعال رکھیں اور ویب ہک کو محفوظ کریں۔

Repovio خام باڈی پر X-Gitea-Signature کی توثیق کرتا ہے اور X-Gitea-Delivery کو کمزوری کے لیے استعمال کرتا ہے۔ Gitea ویب ہک دستاویزات دیکھیں۔

خرابی کا سراغ لگانا

  • 401 کا مطلب ہے کہ Repovio ریپوزٹری، فراہم کنندہ کی قسم، خفیہ، دستخط، پے لوڈ ریپوزٹری ID، یا ڈیلیوری ID کی تصدیق نہیں کر سکا۔ کال بیک کے ریپوزٹری UUID اور عین راز کی تصدیق کریں۔
  • 202 duplicate: true کے ساتھ اس وقت متوقع ہے جب فراہم کنندہ دوبارہ ترسیل کی کوشش کرتا ہے۔
  • ایک کامیاب ترسیل صرف پڑھنے کے لیے مطابقت پذیری کو متحرک کرتی ہے۔ یہ فراہم کنندہ کے ورک فلو کو کبھی تبدیل نہیں کرتا ہے۔
  • مسلسل فراہم کنندہ کی مطابقت پذیری کی حیثیت کے لیے /api/health چیک کریں۔
  • 30 منٹ کے فال بیک کے لیے SCHEDULER_SYNC_INTERVAL_SECONDS=1800 سیٹ کریں۔
  • SCHEDULER_ENABLED=false قطار میں لگی درخواستوں کو برقرار رکھتا ہے لیکن فال بیک انکوئنگ اور پروسیسنگ کو روکتا ہے۔

GitHub App کی ترتیب