मैं चाहता हूँ कि जेनकिन्स (1.561) मर्ज (पुल) अनुरोधों को गीतालाब (6.7.5) में जमा कर, मर्ज अनुरोध वेब हुक द्वारा ट्रिगर किया जाए। मेरे पास एक पैरामीटर निर्मित बिल्ड है, और जेनकिंस प्लगइन्स "गिटलैब मर्ज रिक्वेस्ट बिल्डर" (1.2.0) और "गिटलैब हुक" (1.0.0)। जेनकिंस सीआई के लिए पलायन, दुर्भाग्य से, एक वास्तविक विकल्प नहीं है।
मर्ज अनुरोध बिल्डर प्लगइन है चर के रूप में रूप में लंबे समय, निर्माण मर्ज अनुरोध करने में सक्षम gitlabMergeRequestId
, gitlabTargetBranch
और gitlabSourceBranch
उपलब्ध हैं। यह तब अच्छी तरह से काम करता है जब प्लगइन रिपॉजिटरी को ही पोल करता है, या मैं मैनुअल पेलोड (जैसे curl --data "gitlabMergeRequestId=3&so_on http://server_name/job/$JOB_NAME/buildWithParameters
) के साथ बिल्ड को ट्रिगर करता हूं, लेकिन मैं इसे हुक के साथ नहीं कर सकता।
GitLab हुक प्लगइन का उपयोग करते हुए, मैं JSON पेलोड में आवश्यक डेटा प्राप्त करने में सक्षम हूं, लेकिन मानों में "डेटा" है:
gitlabMergeRequestId
हैid
gitlabTargetBranch
हैtarget_branch
gitlabSourceBranch
हैsource_branch
मैंने GitLab मर्ज अनुरोध बिल्डर प्लगइन की आवश्यकताओं के रूप में और चर मानों के साथ बिल्ड मापदंडों को कॉन्फ़िगर करने की कोशिश की है । दुर्भाग्य से (और शायद जानबूझकर), खेतों में चर को प्रतिस्थापित नहीं किया जाता है , इसलिए जेनकिंस आईडी और इसी तरह के शाखा मूल्यों के साथ मर्ज अनुरोध की तलाश कर रहा है ।Name
Default Value
Default Value
${id}
मुझे GitLab से भेजे गए पेलोड को कॉन्फ़िगर करने का कोई तरीका नहीं मिला है, और न तो GitLab हुक प्लगइन के लिए कोई कॉन्फ़िगरेशन विकल्प हैं और न ही GitLab मर्ज अनुरोध बिल्डर प्लगइन द्वारा उपयोग किए जाने वाले पैरामीटर नाम।
मैं जेनकिन्स पर जाने से पहले POST से पेलोड को रोकने और बदलने के लिए एक छोटी सी PHP स्क्रिप्ट लिखने पर विचार कर रहा हूं। जबकि मुझे यकीन है कि यह काम करेगा, यह निश्चित रूप से अनावश्यक रूप से जटिल लगता है।
एकमात्र अन्य वास्तविक विकल्प जो मैं देख सकता हूं वह है प्लगइन्स के स्रोत को बदलना, लेकिन यह उन्हें एक पीटीए अपग्रेड करता है।
क्या मैंने कुछ स्पष्ट की अनदेखी की है, या वास्तव में मर्ज अनुरोध को ट्रिगर करने का कोई सरल तरीका नहीं है जो गिटलैब से जेनकिंस तक एक वेब हुक के साथ बनाता है?