Sha256: eed33e850474431c241b54b187a4908dd9a530a370c3198e68504bc4ac7e0b87
Contents?: true
Size: 1.09 KB
Versions: 12
Compression:
Stored size: 1.09 KB
Contents
require "sucker_punch" require "faraday" require "pact_broker/logging" # Publishes verification results, as if they were triggered by a CI job module PactBroker class VerificationJob include SuckerPunch::Job include PactBroker::Logging def perform data pact_url = data.fetch(:pactUrl) pact = Faraday.get(pact_url, nil, { "Accept" => "application/hal+json"}).body pact_hash = JSON.parse(pact) headers = { "Content-Type" => "application/json", "Accept" => "application/hal+json" } provider_version = "1.2.#{(rand * 1000).to_i}" provider_url = pact_hash["_links"]["pb:provider"]["href"] Faraday.put("#{provider_url}/versions/#{provider_version}/tags/dev", nil, headers) verification_url = pact_hash["_links"]["pb:publish-verification-results"]["href"] body = { success: true, providerApplicationVersion: provider_version } Faraday.post(verification_url, body.to_json, headers) sleep 3 Faraday.put("#{provider_url}/versions/#{provider_version}/tags/prod", nil, headers) end end end
Version data entries
12 entries across 12 versions & 1 rubygems