如何在契约代理中创建可以由Provider_verification_published事件触发的有效Webhook?

时间:2018-11-12 02:55:21

标签: pact-broker

为了利用契约经纪人的webhooks自动化合同测试,我使用詹金斯工作创建了自定义的contract_content_changed事件。但是当我尝试为由验证结果发布触发的用于客户管道的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 个答案:

答案 0 :(得分:0)

  1. 在“构建触发器”部分中将Jenkins作业配置为“远程构建触发器”
  2. 通过以下链接生成Jenkins-Crumb Steps to create Jenkins-Crumb
  3. 以下是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" } } }
  

如果不允许使用body,则消费者管道如何获取结果以及   继续下一步(或停止部署)?

是的,如果发生“ provider_verification_published”事件,则不允许使用正文。因此,要确认验证结果,我们需要使用“ can-i-deploy” cli来部署或停止部署can-i-deploy。在Pact Broker Webhooks

上提供了更多信息