2015-04-23 3 views
0

Это, кажется, очень простая проблема, но я все же нашел решение, которое работает. В основном я создал веб-крючок из Gitlab для запуска сборки в Jenkins для каждой фиксации. Тем не менее, Дженкинс хочет запрос веб-крючка с помощью метода GET, а веб-крючок Gitlab делает запрос с помощью метода POST. Есть ли способ обойти эту проблему?Trigger Jenkins build with POST request

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

+0

На какой адрес вы отправляете webhook? Конечная точка '/ git/notifyCommit' принимает запросы POST. Вы пробовали плагины GitLab для Дженкинса? –

+0

Я просто проверяю с конечной точкой/git/notifyCommit и не принимает запрос POST. Однако он принимает GET. Я пробовал плагины GitLab, но я не могу правильно установить токен аутентификации, и из-за этого я не могу даже получить доступ к моей конфигурации заданий :( – Khanetor

+0

Конечная точка '/ git/notifyCommit' принимает POST-запросы. Вы можете видеть, что она работает здесь:' curl -v -X POST https: //ci.jenkins-ci.org/git/notifyCommit? [email protected]: jenkinsci/jenkins.git' –

ответ

0

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

0

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

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

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

Смежные вопросы