Как создать действительный веб-крючок, который может быть вызван событием Provider_verification_published в брокере пактов?
Чтобы автоматизировать тестирование контрактов, используя веб-зацепки от pact-брокеров, я создал настраиваемое событие contract_content_changed с заданием jenkins. но когда я пытался добавить webhook для конвейера клиента, который вызывается публикацией результатов проверки, это несколько раз не удавалось.
{"consumer": {
"name": "Consumer Service"
},
"provider": {
"name": "Provider Service"
},
"events": [
{
"name": "provider_verification_published"
}
],
"request": {
"method": "POST",
"url": "http://jenkinsserver/jobforconsumerdeployment",
"headers": {
"Accept": "application/json"
},
"body": {"VerificationResultURL","${pactbroker.verificationResultUrl}"
}
}
после удаления элемента body он успешно создан. передавая тело клиенту, он может проанализировать сбой / передачу и решить, должно ли развертывание идти или не идти.
Если тело не разрешено, как потребительский конвейер, чтобы получить результат и продолжить следующий шаг (или остановить развертывание)?
Я имею в виду Pact Broker Webhooks.
1 ответ
- Настройте задание Jenkins на "Удаленную сборку триггеров" из раздела "Запуск триггеров"
- Сгенерируйте Jenkins-Crumb по следующей ссылке Шаги для создания Jenkins-Crumb
- Следующий почтовый запрос в Pact-Broker работает нормально для меня при локальной настройке jenkins (необходимо проверить разрешения jenkin, чтобы включить выполнение веб-хуков)
{ "events": [{ "name": "provider_verification_published" }], "request": { "method": "GET", "url": "http://username:password@jenkins_url/job/jenkin_consumer/build?token=abc", "user" : "username:password", "headers": { "Jenkins-Crumb": "c787ce16220300f5ef8287a4474d9acxd" } } }
Если тело не разрешено, как потребительский конвейер, чтобы получить результат и продолжить следующий шаг (или остановить развертывание)?
Да, тело не допускается в случае события provider_verification_published. Таким образом, чтобы подтвердить результаты проверки, нам нужно использовать "can-i-deploy" cli, чтобы развернуть или остановить развертывание can-i-deploy. Более подробная информация представлена на веб-сайтах Pact Broker