Я хочу, щоб Дженкінс (1.561) створював запити на об'єднання (витягування), подані до GitLab (6.7.5), викликані веб-гаком запиту на об'єднання. У мене є параметризована збірка та плагіни Дженкінса "GitLab Merge Request Builder" (1.2.0) та "Гак GitLab" (1.0.0). Міграція на Дженкінс CI, на жаль, не є реальним варіантом.
Merge Request Builder плагін є можливість запитів збірки злиття, до тих пір , як змінні gitlabMergeRequestId
, gitlabTargetBranch
і gitlabSourceBranch
доступні. Це добре працює, коли плагін опитує сам сховище або я запускаю збірку за допомогою ручного корисного навантаження (наприклад curl --data "gitlabMergeRequestId=3&so_on http://server_name/job/$JOB_NAME/buildWithParameters
), але я не можу це зробити гаком.
Використовуючи плагін GitLab Hook, я можу отримати необхідні дані в корисному навантаженні JSON, але значення мають "неправильні" клавіші:
gitlabMergeRequestId
єid
gitlabTargetBranch
єtarget_branch
gitlabSourceBranch
єsource_branch
Я спробував налаштувати параметри збірки за допомогою плагіну GitLab Merge Request Builder як Name
та змінних значень як Default Value
. На жаль (і, мабуть, навмисно), змінні в Default Value
полях не замінюються, тому Дженкінс шукає запит на об'єднання зі значеннями id ${id}
та подібними гілками.
Я не знайшов способу налаштування корисного навантаження, надісланого з GitLab, і немає жодних параметрів конфігурації ні для плагіна GitLab Hook, ні імен параметрів, використовуваних плагіном GitLab Merge Request Builder.
Я розглядаю можливість написання невеликого сценарію PHP для перехоплення та зміни корисного навантаження від POST, перш ніж передавати його Дженкінсу. Хоча я впевнений, що це спрацює, це, безумовно, здається зайвим складним.
Єдиний інший реальний варіант, який я бачу, - це зміни джерела плагінів, але це робить їх оновленням PITA.
Чи я не помітив щось очевидне, чи насправді немає більш простого способу запускати побудови запитів на об'єднання за допомогою веб-гачка від GitLab до Jenkins?