pact_broker-client 1.53.0 → 1.57.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +1 -1
- data/CHANGELOG.md +31 -0
- data/README.md +14 -2
- data/doc/pacts/markdown/Pact Broker Client - Pact Broker.md +222 -0
- data/lib/pact_broker/client/base_client.rb +7 -5
- data/lib/pact_broker/client/cli/matrix_commands.rb +3 -2
- data/lib/pact_broker/client/cli/pacticipant_commands.rb +2 -1
- data/lib/pact_broker/client/cli/version_selector_options_parser.rb +4 -0
- data/lib/pact_broker/client/cli/webhook_commands.rb +16 -1
- data/lib/pact_broker/client/deployments/record_release.rb +5 -1
- data/lib/pact_broker/client/deployments/record_undeployment.rb +1 -1
- data/lib/pact_broker/client/environments/environment_command.rb +7 -2
- data/lib/pact_broker/client/git.rb +15 -4
- data/lib/pact_broker/client/hal/entity.rb +2 -2
- data/lib/pact_broker/client/hal/http_client.rb +20 -1
- data/lib/pact_broker/client/hal/link.rb +7 -2
- data/lib/pact_broker/client/pacticipants/create.rb +2 -1
- data/lib/pact_broker/client/publish_pacts.rb +5 -1
- data/lib/pact_broker/client/version.rb +1 -1
- data/lib/pact_broker/client/webhooks/create.rb +4 -0
- data/script/can-i-deploy.sh +5 -0
- data/script/record-deployments-and-releases.sh +3 -3
- data/spec/lib/pact_broker/client/cli/broker_run_webhook_commands_spec.rb +55 -0
- data/spec/lib/pact_broker/client/cli/version_selector_options_parser_spec.rb +6 -0
- data/spec/lib/pact_broker/client/deployments/record_deployment_spec.rb +12 -1
- data/spec/lib/pact_broker/client/deployments/record_undeployment_spec.rb +1 -1
- data/spec/lib/pact_broker/client/git_spec.rb +46 -0
- data/spec/lib/pact_broker/client/hal/link_spec.rb +15 -0
- data/spec/pacts/pact_broker_client-pact_broker.json +234 -0
- data/spec/service_providers/webhooks_create_spec.rb +58 -0
- data/tasks/pact.rake +3 -1
- metadata +4 -3
@@ -54,6 +54,14 @@ RSpec.describe "creating a webhook", pact: true do
|
|
54
54
|
headers: pact_broker_response_headers,
|
55
55
|
body: {
|
56
56
|
description: Pact.like("a webhook"),
|
57
|
+
request: {
|
58
|
+
body: {
|
59
|
+
some: "body"
|
60
|
+
}
|
61
|
+
},
|
62
|
+
events: [
|
63
|
+
name: "contract_content_changed"
|
64
|
+
],
|
57
65
|
_links: {
|
58
66
|
self: {
|
59
67
|
href: Pact.term('http://localhost:1234/some-url', %r{http://.*}),
|
@@ -92,6 +100,7 @@ RSpec.describe "creating a webhook", pact: true do
|
|
92
100
|
before do
|
93
101
|
params.merge!(events: event_names)
|
94
102
|
request_body.merge!("events" => event_names.map{ |event_name| { "name" => event_name } })
|
103
|
+
success_response[:body].merge!(events: event_names.map{ |event_name| { "name" => event_name } })
|
95
104
|
|
96
105
|
pact_broker
|
97
106
|
.given("the 'Pricing Service' and 'Condor' already exist in the pact-broker")
|
@@ -112,6 +121,7 @@ RSpec.describe "creating a webhook", pact: true do
|
|
112
121
|
context "when a valid webhook with an XML body is submitted" do
|
113
122
|
before do
|
114
123
|
request_body["request"]["body"] = body
|
124
|
+
success_response[:body][:request][:body] = body
|
115
125
|
|
116
126
|
pact_broker
|
117
127
|
.given("the 'Pricing Service' and 'Condor' already exist in the pact-broker")
|
@@ -207,6 +217,30 @@ RSpec.describe "creating a webhook", pact: true do
|
|
207
217
|
end
|
208
218
|
end
|
209
219
|
|
220
|
+
context "when consumer is specified using a label" do
|
221
|
+
before do
|
222
|
+
params.delete(:consumer)
|
223
|
+
params.delete(:provider)
|
224
|
+
params.merge!(consumer_label: "consumer_label")
|
225
|
+
request_body["consumer"] = { "label" => "consumer_label" }
|
226
|
+
mock_pact_broker_index(self)
|
227
|
+
|
228
|
+
pact_broker
|
229
|
+
.upon_receiving("a request to create a webhook with a JSON body for a consumer specified by a label")
|
230
|
+
.with(
|
231
|
+
method: :post,
|
232
|
+
path: placeholder_path('pb:webhooks'),
|
233
|
+
headers: post_request_headers,
|
234
|
+
body: request_body)
|
235
|
+
.will_respond_with(success_response)
|
236
|
+
end
|
237
|
+
|
238
|
+
it "returns a CommandResult with success = true" do
|
239
|
+
expect(subject.success).to be true
|
240
|
+
expect(subject.message).to eq "Webhook \"a webhook\" created"
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
210
244
|
context "when only a consumer is specified and it does not exist" do
|
211
245
|
before do
|
212
246
|
params.delete(:provider)
|
@@ -257,6 +291,30 @@ RSpec.describe "creating a webhook", pact: true do
|
|
257
291
|
end
|
258
292
|
end
|
259
293
|
|
294
|
+
context "when provider is specified using a label" do
|
295
|
+
before do
|
296
|
+
params.delete(:consumer)
|
297
|
+
params.delete(:provider)
|
298
|
+
params.merge!(provider_label: "provider_label")
|
299
|
+
request_body["provider"] = { "label" => "provider_label" }
|
300
|
+
mock_pact_broker_index(self)
|
301
|
+
|
302
|
+
pact_broker
|
303
|
+
.upon_receiving("a request to create a webhook with a JSON body for a provider specified by a label")
|
304
|
+
.with(
|
305
|
+
method: :post,
|
306
|
+
path: placeholder_path('pb:webhooks'),
|
307
|
+
headers: post_request_headers,
|
308
|
+
body: request_body)
|
309
|
+
.will_respond_with(success_response)
|
310
|
+
end
|
311
|
+
|
312
|
+
it "returns a CommandResult with success = true" do
|
313
|
+
expect(subject.success).to be true
|
314
|
+
expect(subject.message).to eq "Webhook \"a webhook\" created"
|
315
|
+
end
|
316
|
+
end
|
317
|
+
|
260
318
|
context "when neither consumer nor provider are specified" do
|
261
319
|
before do
|
262
320
|
params.delete(:consumer)
|
data/tasks/pact.rake
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
require
|
1
|
+
require "pact_broker/client/tasks"
|
2
|
+
require "pact_broker/client/git"
|
2
3
|
|
3
4
|
PactBroker::Client::PublicationTask.new(:localhost) do | task |
|
4
5
|
require 'pact_broker/client/version'
|
@@ -35,4 +36,5 @@ PactBroker::Client::PublicationTask.new(:pactflow) do | task |
|
|
35
36
|
task.consumer_version = version
|
36
37
|
task.pact_broker_base_url = "https://pact-oss.pactflow.io"
|
37
38
|
task.pact_broker_token = ENV['PACT_BROKER_TOKEN']
|
39
|
+
task.build_url = PactBroker::Client::Git.build_url
|
38
40
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pact_broker-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.57.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Beth Skurrie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -319,6 +319,7 @@ files:
|
|
319
319
|
- lib/pact_broker_client.rb
|
320
320
|
- pact-broker-client.gemspec
|
321
321
|
- script/approve-all.sh
|
322
|
+
- script/can-i-deploy.sh
|
322
323
|
- script/create-pacticipant.sh
|
323
324
|
- script/publish-pact.sh
|
324
325
|
- script/record-deployment.sh
|
@@ -430,7 +431,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
430
431
|
- !ruby/object:Gem::Version
|
431
432
|
version: '0'
|
432
433
|
requirements: []
|
433
|
-
rubygems_version: 3.2.
|
434
|
+
rubygems_version: 3.2.30
|
434
435
|
signing_key:
|
435
436
|
specification_version: 4
|
436
437
|
summary: See description
|