【问题标题】:unable to publish result to pact broker无法将结果发布给契约经纪人
【发布时间】:2019-09-26 11:45:02
【问题描述】:

我正在尝试使用以下命令在 localhost:9292 上的协议代理主机上发布验证结果:

curl -XPOST -H 'Content-Type: application/json' -d@/home/ec2-user/pact-ruby/example/zoo-app/spec/pacts/zoo_app-animal_service.json ${verification_url}

在这里,我无法从下面的语法中获取验证 url 的值。

BASE_URL="http://localhost:9292"

response_body=$(curl ${BASE_URL}/pacts/provider/Bar/consumer/Foo/latest)
verification_url=$(echo "${response_body}" | ruby -e "require 'json'; puts JSON.parse(ARGF.read)['_links']['pb:publish-verification-results']['href']")
curl -XPOST -H 'Content-Type: application/json' -d@script/foo-bar-verification.json ${verification_url}

目前我已在以下网址进行了验证: ../animal-service > specs/service_consumers> rake:pact-verify-at[]

我无法弄清楚如何从上述请求中检索验证 URL。我错过了什么,请帮忙。

【问题讨论】:

    标签: post verification provider consumer pact-broker


    【解决方案1】:

    提供者可以通过两种方式验证来自 Pact Broker 的已发布协议。

    1. 在 Pact Broker 本身上设置了一个 webhook 'contract content changed',它通过传递 ${pactbroker.pactUrl} 来调用 Provider 的验证构建。
    2. Broker 要求您为您发布的每个合约分配一个消费者版本${commit_hash}。在运行提供者验证时,提供者需要指定它想要验证的消费者版本。然后,代理将返回该特定消费者版本的最新合同版本。

    【讨论】:

      猜你喜欢
      • 2018-04-15
      • 1970-01-01
      • 2015-09-19
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 2020-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多