Почему $payload является пустой переменной?
Версии программного обеспечения: GitHub-плагин версии 1.29.3
Дженкинс вер. 2.163 обратный прокси nginx
Текущее состояние Нет проблем со связью, и триггеры сборки из события push. Однако нет значений в $payload
Конфигурация GitHub:
Github Webhook: репо https: // имя пользователя: пароль @ publicIP: порт / github-webhook /
Тип содержимого (проверено как application/x-www-form-url-urlencoded & application/json)
Тип события: Просто push-событие
..
Конфигурация Jenkins:
Проект GitHub: заполнен URL проекта
Этот проект параметризован: String Параметр Полезная нагрузка
Управление исходным кодом: REPO URL & Creds Master Master
Триггеры сборки: триггер GitHub для подключения к Интернету для опроса GITScm
Сборка Выполнить Shell:
echo "the build worked! The payload is $payload"
Вывод: пуст для $payloadthe build worked! The payload is
2 ответа
Решил использовать универсальный плагин триггера Webhook https://wiki.jenkins.io/display/JENKINS/Generic+Webhook+Trigger+Plugin
Ниже приведен простой и быстрый способ разбора "имени" и "электронной почты", рассматривающий файл JSON как необработанный текст (который, конечно, имеет свои предостережения).
name=$(grep pusher -A5 <your_json_file> | grep name | cut -d':' -f2 | cut -d' ' -f2 | tr -d \" | tr -d ,)
email=$(grep pusher -A5 <your_json_file> | grep email | cut -d':' -f2 | cut -d' ' -f2 | tr -d \" | tr -d ,)