ฉันต้องการให้เจนกิ้นส์ (1.561) สร้างคำขอผสาน (ดึง) ที่ส่งไปยัง GitLab (6.7.5) ซึ่งถูกเรียกโดยเว็บขอรวม ฉันมีบิลด์แบบกำหนดพารามิเตอร์และปลั๊กอินเจนกินส์ "GitLab Merge Request Builder" (1.2.0) และ "GitLab Hook" (1.0.0) การย้ายไปที่ Jenkins CI นั้นน่าเสียดายไม่ใช่ตัวเลือกจริง
ผสานรวมเข้ากับปลั๊กอิน Builder คือสามารถที่จะร้องขอสร้างผสานตราบใดที่ตัวแปรgitlabMergeRequestId
, gitlabTargetBranch
และgitlabSourceBranch
ที่มีอยู่ สิ่งนี้จะทำงานได้ดีเมื่อปลั๊กอินทำการสำรวจพื้นที่เก็บข้อมูลของตัวเองหรือฉันทริกเกอร์บิลด์ด้วย payload ด้วยตนเอง (เช่นcurl --data "gitlabMergeRequestId=3&so_on http://server_name/job/$JOB_NAME/buildWithParameters
) แต่ฉันไม่สามารถทำสิ่งนี้ด้วยเบ็ด
การใช้ปลั๊กอิน GitLab Hook ทำให้ฉันสามารถรับข้อมูลที่จำเป็นใน JSON payload ได้ แต่ค่ามีคีย์ "ผิด":
gitlabMergeRequestId
คือid
gitlabTargetBranch
คือtarget_branch
gitlabSourceBranch
คือsource_branch
ฉันได้พยายามกำหนดค่าพารามิเตอร์สร้างกับความต้องการ GitLab ผสานรวมเข้ากับสร้างปลั๊กอินเป็นและค่าตัวแปรเป็นName
Default Value
น่าเสียดายที่ (และอาจตั้งใจ) ตัวแปรในDefault Value
ฟิลด์จะไม่ถูกแทนที่ดังนั้นเจนกินส์จึงมองหาคำขอผสานที่มี ID ${id}
และค่าสาขาที่คล้ายกัน
ฉันไม่พบวิธีกำหนดค่า payload ที่ส่งจาก GitLab และไม่มีตัวเลือกการกำหนดค่าสำหรับปลั๊กอิน GitLab Hook หรือชื่อพารามิเตอร์ที่ใช้โดยปลั๊กอิน GitLab Merge Request Builder
ฉันกำลังพิจารณาที่จะเขียนสคริปต์ PHP ขนาดเล็กเพื่อสกัดกั้นและเปลี่ยนเพย์โหลดจาก POST ก่อนส่งต่อให้เจนกินส์ ในขณะที่ฉันแน่ใจว่าสิ่งนี้จะได้ผล แต่ดูเหมือนว่าจะซับซ้อนโดยไม่จำเป็น
ตัวเลือกจริงอื่น ๆ ที่ฉันเห็นคือเปลี่ยนแหล่งที่มาของปลั๊กอิน แต่สิ่งนี้ทำให้การอัพเกรดเป็น PITA
ฉันมองข้ามสิ่งที่เห็นได้ชัดหรือไม่มีวิธีที่ง่ายกว่าในการเรียกใช้ Merge Request สร้างด้วย web hook จาก GitLab ถึง Jenkins?