Триггерная сборка Jenkins с POST-запросом

Кажется, это очень простая проблема, но я еще не нашел решение, которое работает. По сути, я создал веб-хук из Gitlab для запуска сборки в Jenkins для каждого коммита. Однако Дженкинс хочет запрос веб-ловушки с помощью метода GET, а веб-ловушка Gitlab делает запрос с помощью метода POST. Есть ли способ обойти эту проблему?

Судя по поиску, который я провел, Дженкинс обычно хотел запрос POST, но это уже не так. Я использую Jenkins 1.610 с Gitlab 7.9.4.

3 ответа

Решение

Оказывается, поскольку я включил защиту CSRF, любой не GET-запрос к Дженкинсу отклоняется. Отключите CSRF, и я могу вызвать Дженкинса с помощью запроса POST.

Я сделал собственное решение в NodeJS. Это в значительной степени хак, который захватывает POST-запрос веб-хука от Gitlab и передает этот запрос Jenkins как GET-запрос.

Вот код: http://git.myladybug.co/khanetor/githook-jenkins-trigger.git

Я сделал 2 версии, первая из которых потребует, чтобы вы включили имя проекта и токен в свой строковый запрос. Второй просто передаст все, что у вас есть, Дженкинсу и вернет ответ от Дженкинса.

Другие вопросы по тегам