Запуск збудови Дженкінса для запиту на злиття з веб-гачка GitLab


10

Я хочу, щоб Дженкінс (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?

Відповіді:



0

Перевірте цей новий плагін (gitlab-plugin), можливо, він допомагає. Цей плагін імітує Дженкінса як веб-службу GitlabCI, яку слід використовувати з GitlabHQ.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.