रिपोजिटरी वेबहुक सेटअप
संग्रहीत स्रोत स्नैपशॉट। उत्पाद लेबल Repovio का उपयोग करते हैं। इस रिलीज़ की टैग की गई परिनियोजन फ़ाइलों से कॉन्फ़िगरेशन पहचानकर्ताओं और कंटेनर संदर्भों का अपरिवर्तित उपयोग करें।
Repovio किसी ट्रैक किए गए रिपॉजिटरी को उसके सामान्य मतदान अंतराल से पहले सिंक्रनाइज़ करने के लिए हस्ताक्षरित वेबहुक प्राप्त कर सकता है। यह प्रदाता एपीआई के माध्यम से वेबहुक कभी नहीं बनाता, अपडेट नहीं करता, हटाता या परीक्षण नहीं करता। एक व्यवस्थापक प्रत्येक रिपॉजिटरी वेबहुक को GitHub, GitLab, Forgejo, या Gitea में मैन्युअल रूप से कॉन्फ़िगर करता है।
रिपॉजिटरी खोलें, एक ट्रैक की गई रिपॉजिटरी चुनें, और इसकेरिपॉजिटरी वेबहुक कार्ड का उपयोग करें। कार्ड रिपॉजिटरी-विशिष्ट कॉलबैक यूआरएल दिखाता है, एक हस्ताक्षरित रहस्य उत्पन्न करता है या स्वीकार करता है, और अंतिम स्वीकृत डिलीवरी की रिपोर्ट करता है। Repovio उस कॉन्फ़िगरेशन को प्रदाता को कभी नहीं भेजता है।
वेबहुक एक अनुकूलन है, सत्य का स्रोत नहीं। हस्ताक्षरित पेलोड को कॉलबैक यूआरएल द्वारा चयनित रिपॉजिटरी की पहचान करनी चाहिए। Repovio फिर कॉन्फ़िगर किए गए रीड-ओनली प्रदाता एडाप्टर के माध्यम से वर्तमान डेटा को पढ़ता है। स्वीकृत डिलीवरी एक टिकाऊ रिपॉजिटरी सिंक्रोनाइज़ेशन को दर्शाती है; 15 सेकंड के भीतर प्राप्त डिलीवरी को जोड़ दिया जाता है। डिफ़ॉल्ट फ़ॉलबैक मतदान अंतराल 30 मिनट है।
एक रिपॉजिटरी वेबहुक कॉन्फ़िगर करें
- रिपॉजिटरी को Repovio में जोड़ें और इसका रिपॉजिटरी वेबहुक कार्ड खोलें।
- कॉलबैक यूआरएल कॉपी करें।
- एक अद्वितीय, उच्च-एन्ट्रॉपी हस्ताक्षर रहस्य उत्पन्न करें या प्रदाता द्वारा आपूर्ति किए गए सटीक हस्ताक्षर टोकन को पेस्ट करें। किसी एक्सेस टोकन या किसी अन्य रिपॉजिटरी के रहस्य का दोबारा उपयोग न करें।
- रहस्य सहेजें. Repovio इसे AES-256-GCM के साथ एन्क्रिप्ट करता है और इसे एपीआई के माध्यम से कभी वापस नहीं करता है।
- उस रिपॉजिटरी की प्रदाता सेटिंग्स में कॉलबैक यूआरएल और सीक्रेट को कॉन्फ़िगर करें।
- टीएलएस सत्यापन सक्षम रखें और एक परीक्षण डिलीवरी भेजें।
स्थिर कॉलबैक /api/webhooks/<provider>/<repository-id> का उपयोग करते हैं। संस्करणित
/api/v1/webhooks/<provider>/<repository-id> कॉलबैक भी उपलब्ध हैं। Repovio 0.2.9 और इससे पहले के प्रदाता-खाता कॉलबैक
URL अब स्वीकार नहीं किए जाते हैं। अपग्रेड करने के बाद, प्रत्येक वेबहुक को उसके रिपॉजिटरी कॉलबैक और एक नए रिपॉजिटरी रहस्य
के साथ फिर से बनाएं।
सफल डिलीवरी { "accepted": true } के साथ HTTP 202 लौटाती है। बार-बार प्रदाता डिलीवरी आईडी
{ "accepted": true, "duplicate": true } लौटाते हैं और किसी अन्य सिंक्रनाइज़ेशन को सूचीबद्ध नहीं करते हैं। अज्ञात या
अक्षम रिपॉजिटरी, अक्षम प्रदाता खाते, गुम रहस्य, अमान्य हस्ताक्षर, बेमेल प्रदाता रिपॉजिटरी आईडी और गुम डिलीवरी आईडी को
कॉन्फ़िगरेशन विवरण उजागर किए बिना अस्वीकार कर दिया जाता है।
कतारबद्ध सिंक्रनाइज़ेशन एपीआई पुनरारंभ होने से बच जाता है। एकाधिक उदाहरण डेटाबेस पट्टों का उपयोग करते हैं और एक ही प्रदाता खाते को समवर्ती रूप से सिंक्रनाइज़ नहीं करते हैं। दर-सीमा हेडर प्रभावित खाते के लिए काम में देरी करते हैं, जबकि सीमित पुनर्प्रयास क्षणिक विफलताओं को संभालते हैं।
GitHub क्रियाएँ
- रिपॉजिटरी की सेटिंग्स → वेबहुक खोलें औरवेबहुक जोड़ें चुनें।
- पेलोड यूआरएल के रूप में
https://repovio.example.com/api/webhooks/github/<repository-id>का उपयोग करें। application/jsonचुनें, रिपॉजिटरी सीक्रेट पेस्ट करें, और वर्कफ़्लो रन (workflow_run) की सदस्यता लें।- एसएसएल सत्यापन सक्षम रखें और वेबहुक को सेव करें।
Repovio कच्चे शरीर पर X-Hub-Signature-256 का सत्यापन करता है और निष्क्रियता के लिए X-GitHub-Delivery का उपयोग करता
है। GitHub का वेबहुक इवेंट दस्तावेज़ीकरण देखें।
GitLab पाइपलाइन
- प्रोजेक्ट की सेटिंग्स → वेबहुक खोलें औरनया वेबहुक जोड़ें चुनें।
- URL के रूप में
https://repovio.example.com/api/webhooks/gitlab/<repository-id>का उपयोग करें। - एक साइनिंग टोकन जेनरेट करें और Repovio रिपॉजिटरी कार्ड में
whsec_सहित इसका पूरा मूल्य सहेजें। - पाइपलाइन इवेंट चुनें, एसएसएल सत्यापन सक्षम रखें, सहेजें और एक परीक्षण डिलीवरी भेजें।
Repovio मानक वेबहुक HMAC-SHA256 हस्ताक्षरों को सत्यापित करता है और निष्क्रियता के लिए webhook-id को प्राथमिकता देता
है। लीगेसी X-Gitlab-Token और X-Gitlab-Event-UUID हेडर पुराने उदाहरणों के लिए समर्थित रहेंगे। GitLab का
वेबहुक दस्तावेज़ीकरण देखें।
Forgejo क्रियाएँ
- रिपॉजिटरी की सेटिंग्स → वेबहुक खोलें और एक मूलForgejo JSON वेबहुक जोड़ें।
- लक्ष्य URL के रूप में
https://repovio.example.com/api/webhooks/forgejo/<repository-id>का उपयोग करें। - रिपॉजिटरी सीक्रेट पेस्ट करें और पुश इवेंट प्लस कोई भी उपलब्ध एक्शन इवेंट चुनें।
- टीएलएस सत्यापन सक्षम रखें और वेबहुक सहेजें।
Repovio X-Forgejo-Signature को सत्यापित करता है और निष्क्रियता के लिए X-Forgejo-Delivery का उपयोग करता है।
Gitea-संगत हेडर Forgejo संगतता के लिए स्वीकार किए जाते हैं। Forgejo
वेबहुक दस्तावेज़ीकरण देखें।
Gitea क्रियाएँ
- रिपॉजिटरी की सेटिंग्स → वेबहुक खोलें और एक मूलGitea JSON वेबहुक जोड़ें।
- लक्ष्य URL के रूप में
https://repovio.example.com/api/webhooks/gitea/<repository-id>का उपयोग करें। - रिपॉजिटरी सीक्रेट पेस्ट करें और पुश इवेंट प्लस किसी भी उपलब्ध वर्कफ़्लो इवेंट का चयन करें।
- टीएलएस सत्यापन सक्षम रखें और वेबहुक सहेजें।
Repovio कच्चे शरीर पर X-Gitea-Signature का सत्यापन करता है और निष्क्रियता के लिए X-Gitea-Delivery का उपयोग करता है।
Gitea वेबहुक दस्तावेज़ीकरण देखें।
समस्या निवारण
401का अर्थ है कि Repovio रिपॉजिटरी, प्रदाता प्रकार, रहस्य, हस्ताक्षर, पेलोड रिपॉजिटरी आईडी या डिलीवरी आईडी को सत्यापित नहीं कर सका। कॉलबैक के भंडार यूयूआईडी और सटीक रहस्य की पुष्टि करें।duplicate: trueके साथ202तब अपेक्षित होता है जब कोई प्रदाता डिलीवरी का पुनः प्रयास करता है।- एक सफल डिलीवरी केवल रीड-ओनली सिंक्रोनाइज़ेशन को ट्रिगर करती है; यह प्रदाता वर्कफ़्लो को कभी भी संशोधित नहीं करता है।
- निरंतर प्रदाता सिंक्रनाइज़ेशन स्थिति के लिए
/api/healthकी जाँच करें। - 30 मिनट के फ़ॉलबैक के लिए
SCHEDULER_SYNC_INTERVAL_SECONDS=1800सेट करें। SCHEDULER_ENABLED=falseकतारबद्ध अनुरोधों को बरकरार रखता है लेकिन फ़ॉलबैक कतारबद्धता और प्रसंस्करण को रोक देता है।