pact_broker-client 1.14.1 → 1.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +21 -0
- data/README.md +27 -1
- data/Rakefile +9 -0
- data/doc/pacts/markdown/Pact Broker Client - Pact Broker.md +521 -10
- data/lib/pact_broker/client/base_client.rb +1 -1
- data/lib/pact_broker/client/cli/broker.rb +63 -0
- data/lib/pact_broker/client/cli/can_i_deploy_long_desc.txt +1 -1
- data/lib/pact_broker/client/cli/create_webhook_long_desc.txt +1 -0
- data/lib/pact_broker/client/command_result.rb +12 -0
- data/lib/pact_broker/client/hal.rb +4 -0
- data/lib/pact_broker/client/hal/entity.rb +78 -0
- data/lib/pact_broker/client/hal/entry_point.rb +13 -0
- data/lib/pact_broker/client/hal/http_client.rb +82 -0
- data/lib/pact_broker/client/hal/link.rb +79 -0
- data/lib/pact_broker/client/pacts.rb +7 -1
- data/lib/pact_broker/client/version.rb +1 -1
- data/lib/pact_broker/client/versions.rb +0 -1
- data/lib/pact_broker/client/webhooks/create.rb +114 -0
- data/spec/integration/can_i_deploy_spec.rb +1 -3
- data/spec/integration/create_version_tag_spec.rb +1 -3
- data/spec/lib/pact_broker/client/can_i_deploy_spec.rb +1 -1
- data/spec/lib/pact_broker/client/cli/broker_create_webhook_spec.rb +190 -0
- data/spec/lib/pact_broker/client/hal/entity_spec.rb +93 -0
- data/spec/lib/pact_broker/client/hal/http_client_spec.rb +105 -0
- data/spec/lib/pact_broker/client/hal/link_spec.rb +108 -0
- data/spec/lib/pact_broker/client/webhooks/create_spec.rb +61 -0
- data/spec/pacts/pact_broker_client-pact_broker.json +499 -9
- data/spec/service_providers/pact_broker_client_publish_spec.rb +6 -1
- data/spec/service_providers/pact_broker_client_retrieve_all_pacts_for_provider_spec.rb +1 -1
- data/spec/service_providers/{pact_broker_client_retrive_pact_spec.rb → pact_broker_client_retrieve_pact_spec.rb} +2 -3
- data/spec/service_providers/pact_broker_client_versions_spec.rb +1 -1
- data/spec/service_providers/pact_helper.rb +46 -0
- data/spec/service_providers/webhooks_create_spec.rb +255 -0
- data/spec/spec_helper.rb +32 -0
- data/spec/support/latest_pacts_for_provider.json +1 -1
- data/spec/support/shared_context.rb +6 -3
- metadata +24 -4
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'pact_broker/client/pact_broker_client'
|
2
|
+
require_relative 'pact_helper'
|
3
|
+
|
1
4
|
module PactBroker::Client
|
2
5
|
describe PactBrokerClient, :pact => true do
|
3
6
|
|
@@ -116,7 +119,9 @@ module PactBroker::Client
|
|
116
119
|
status: 500,
|
117
120
|
headers: {'Content-Type' => Pact.term(generate: 'application/hal+json', matcher: %r{application/.*json})},
|
118
121
|
body: {
|
119
|
-
|
122
|
+
error: {
|
123
|
+
message: Pact::Term.new(matcher: /.*/, generate: 'An error occurred')
|
124
|
+
}
|
120
125
|
}
|
121
126
|
)
|
122
127
|
end
|
@@ -7,7 +7,7 @@ module PactBroker::Client
|
|
7
7
|
include_context "pact broker"
|
8
8
|
|
9
9
|
describe "retriving all pacts for provider" do
|
10
|
-
let(:response_body) { JSON.parse(File.read("./spec/support/latest_pacts_for_provider.json")) }
|
10
|
+
let(:response_body) { Pact.like(JSON.parse(File.read("./spec/support/latest_pacts_for_provider.json"))) }
|
11
11
|
let(:expectedPactsArray) { [{:name => "Condor", :href => "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0"}] }
|
12
12
|
|
13
13
|
context "when retrieving all the latest pacts for provider with prod tag specified" do
|
@@ -70,8 +70,7 @@ module PactBroker::Client
|
|
70
70
|
headers: {}
|
71
71
|
).
|
72
72
|
will_respond_with(
|
73
|
-
status: 404
|
74
|
-
headers: pact_broker_response_headers
|
73
|
+
status: 404
|
75
74
|
)
|
76
75
|
end
|
77
76
|
it "returns nil" do
|
@@ -89,7 +88,7 @@ module PactBroker::Client
|
|
89
88
|
with(
|
90
89
|
method: :get,
|
91
90
|
path: '/pacts/provider/Pricing%20Service/consumer/Condor/latest/prod',
|
92
|
-
headers: { 'Accept' => 'application/json, application/
|
91
|
+
headers: { 'Accept' => 'application/hal+json, application/json'}
|
93
92
|
).
|
94
93
|
will_respond_with(
|
95
94
|
status: 200,
|
@@ -6,7 +6,7 @@ describe PactBroker::Client::Versions, pact: true do
|
|
6
6
|
|
7
7
|
include_context "pact broker"
|
8
8
|
|
9
|
-
let(:get_headers) { { "Accept" => "application/json, application/
|
9
|
+
let(:get_headers) { { "Accept" => "application/hal+json, application/json" } }
|
10
10
|
|
11
11
|
describe "retrieving the latest pacticipant version" do
|
12
12
|
let(:latest_version_path) { "/HAL-REL-PLACEHOLDER-INDEX-PB-LATEST-VERSION-{pacticipant}" }
|
@@ -18,3 +18,49 @@ Pact.service_consumer 'Pact Broker Client' do
|
|
18
18
|
|
19
19
|
end
|
20
20
|
|
21
|
+
module PactBrokerPactHelperMethods
|
22
|
+
|
23
|
+
def placeholder_path(relation, params = [])
|
24
|
+
path = "/HAL-REL-PLACEHOLDER-#{relation.gsub(':', '-').upcase}"
|
25
|
+
if params.any?
|
26
|
+
joined_params = params.collect{ |param| "{#{param}}"}.join("-")
|
27
|
+
path = "#{path}-#{joined_params}"
|
28
|
+
end
|
29
|
+
|
30
|
+
path
|
31
|
+
end
|
32
|
+
|
33
|
+
def placeholder_url(relation, params = [])
|
34
|
+
"#{pact_broker.mock_service_base_url}#{placeholder_path(relation, params)}"
|
35
|
+
end
|
36
|
+
|
37
|
+
def placeholder_url_term(relation, params = [])
|
38
|
+
regexp = "http:\/\/.*"
|
39
|
+
if params.any?
|
40
|
+
joined_params_for_regexp = params.collect{ |param| "{#{param}}"}.join(".*")
|
41
|
+
regexp = "#{regexp}#{joined_params_for_regexp}"
|
42
|
+
end
|
43
|
+
|
44
|
+
Pact.term(placeholder_url(relation, params), /#{regexp}/)
|
45
|
+
end
|
46
|
+
|
47
|
+
def mock_pact_broker_index(context)
|
48
|
+
pact_broker
|
49
|
+
.upon_receiving("a request for the index resource")
|
50
|
+
.with(
|
51
|
+
method: :get,
|
52
|
+
path: '/',
|
53
|
+
headers: context.get_request_headers).
|
54
|
+
will_respond_with(
|
55
|
+
status: 200,
|
56
|
+
headers: context.pact_broker_response_headers,
|
57
|
+
body: {
|
58
|
+
_links: {
|
59
|
+
:'pb:webhooks' => {
|
60
|
+
href: placeholder_url_term('pb:webhooks')
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
64
|
+
)
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,255 @@
|
|
1
|
+
require_relative 'pact_helper'
|
2
|
+
require 'pact_broker/client/webhooks/create'
|
3
|
+
|
4
|
+
RSpec.describe "creating a webhook", pact: true do
|
5
|
+
|
6
|
+
include_context "pact broker"
|
7
|
+
include PactBrokerPactHelperMethods
|
8
|
+
|
9
|
+
let(:params) do
|
10
|
+
{
|
11
|
+
http_method: "POST",
|
12
|
+
url: "https://webhook",
|
13
|
+
headers: { "Foo" => "bar", "Bar" => "foo"},
|
14
|
+
username: "username",
|
15
|
+
password: "password",
|
16
|
+
body: body,
|
17
|
+
consumer: "Condor",
|
18
|
+
provider: "Pricing Service",
|
19
|
+
events: ["contract_content_changed"]
|
20
|
+
}.tap { |it| Pact::Fixture.add_fixture(:create_webhook_params, it) }
|
21
|
+
end
|
22
|
+
|
23
|
+
let(:body) { { some: "body" }.to_json }
|
24
|
+
|
25
|
+
let(:request_body) do
|
26
|
+
{
|
27
|
+
"events" => [
|
28
|
+
{
|
29
|
+
"name" => "contract_content_changed"
|
30
|
+
}
|
31
|
+
],
|
32
|
+
"request" => {
|
33
|
+
"url" => "https://webhook",
|
34
|
+
"method" => "POST",
|
35
|
+
"headers" => {
|
36
|
+
"Foo" => "bar",
|
37
|
+
"Bar" => "foo"
|
38
|
+
},
|
39
|
+
"body" => {
|
40
|
+
"some" => "body"
|
41
|
+
},
|
42
|
+
"username" => "username",
|
43
|
+
"password" => "password"
|
44
|
+
}
|
45
|
+
}
|
46
|
+
end
|
47
|
+
|
48
|
+
let(:success_response) do
|
49
|
+
{
|
50
|
+
status: 201,
|
51
|
+
headers: pact_broker_response_headers,
|
52
|
+
body: {
|
53
|
+
_links: {
|
54
|
+
self: {
|
55
|
+
href: Pact.term('http://localhost:1234/some-url', %r{http://.*}),
|
56
|
+
title: Pact.like("A title")
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
61
|
+
end
|
62
|
+
|
63
|
+
let(:pact_broker_client_options) { {} }
|
64
|
+
|
65
|
+
subject { PactBroker::Client::Webhooks::Create.call(params, broker_base_url, pact_broker_client_options) }
|
66
|
+
|
67
|
+
context "when a valid webhook with a JSON body is submitted" do
|
68
|
+
before do
|
69
|
+
pact_broker
|
70
|
+
.given("the 'Pricing Service' and 'Condor' already exist in the pact-broker")
|
71
|
+
.upon_receiving("a request to create a webhook with a JSON body for a consumer and provider")
|
72
|
+
.with(
|
73
|
+
method: :post,
|
74
|
+
path: '/webhooks/provider/Pricing%20Service/consumer/Condor',
|
75
|
+
headers: post_request_headers,
|
76
|
+
body: request_body)
|
77
|
+
.will_respond_with(success_response)
|
78
|
+
end
|
79
|
+
|
80
|
+
it "returns a CommandResult with success = true" do
|
81
|
+
expect(subject).to be_a PactBroker::Client::CommandResult
|
82
|
+
expect(subject.success).to be true
|
83
|
+
expect(subject.message).to eq "Webhook \"A title\" created"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
context "when a valid webhook with an XML body is submitted" do
|
88
|
+
before do
|
89
|
+
request_body["request"]["body"] = body
|
90
|
+
|
91
|
+
pact_broker
|
92
|
+
.given("the 'Pricing Service' and 'Condor' already exist in the pact-broker")
|
93
|
+
.upon_receiving("a request to create a webhook with a non-JSON body for a consumer and provider")
|
94
|
+
.with(
|
95
|
+
method: :post,
|
96
|
+
path: '/webhooks/provider/Pricing%20Service/consumer/Condor',
|
97
|
+
headers: post_request_headers,
|
98
|
+
body: request_body)
|
99
|
+
.will_respond_with(success_response)
|
100
|
+
end
|
101
|
+
|
102
|
+
let(:body) { "<xml></xml>" }
|
103
|
+
|
104
|
+
it "returns a CommandResult with success = true" do
|
105
|
+
expect(subject.success).to be true
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
context "when an invalid webhook is submitted" do
|
110
|
+
before do
|
111
|
+
params[:url] = nil
|
112
|
+
request_body["request"]["url"] = nil
|
113
|
+
|
114
|
+
pact_broker
|
115
|
+
.given("the 'Pricing Service' and 'Condor' already exist in the pact-broker")
|
116
|
+
.upon_receiving("an invalid request to create a webhook for a consumer and provider")
|
117
|
+
.with(
|
118
|
+
method: :post,
|
119
|
+
path: '/webhooks/provider/Pricing%20Service/consumer/Condor',
|
120
|
+
headers: post_request_headers,
|
121
|
+
body: request_body).
|
122
|
+
will_respond_with(
|
123
|
+
status: 400,
|
124
|
+
headers: pact_broker_response_headers,
|
125
|
+
body: {
|
126
|
+
errors: {
|
127
|
+
"request.url" => Pact.each_like("Some error")
|
128
|
+
}
|
129
|
+
}
|
130
|
+
)
|
131
|
+
end
|
132
|
+
|
133
|
+
it "returns a CommandResult with success = false" do
|
134
|
+
expect(subject.success).to be false
|
135
|
+
expect(subject.message).to match /400/
|
136
|
+
expect(subject.message).to match /Some error/
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
context "when one of the pacticipants does not exist" do
|
141
|
+
before do
|
142
|
+
pact_broker
|
143
|
+
.given("'Condor' does not exist in the pact-broker")
|
144
|
+
.upon_receiving("a request to create a webhook for a consumer and provider")
|
145
|
+
.with(
|
146
|
+
method: :post,
|
147
|
+
path: '/webhooks/provider/Pricing%20Service/consumer/Condor',
|
148
|
+
headers: post_request_headers,
|
149
|
+
body: request_body).
|
150
|
+
will_respond_with(
|
151
|
+
status: 404,
|
152
|
+
headers: pact_broker_response_headers
|
153
|
+
)
|
154
|
+
end
|
155
|
+
|
156
|
+
it "returns a CommandResult with success = false" do
|
157
|
+
expect(subject.success).to be false
|
158
|
+
expect(subject.message).to match /404/
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
context "when only a consumer is specified" do
|
163
|
+
before do
|
164
|
+
params.delete(:provider)
|
165
|
+
request_body["consumer"] = { "name" => "Condor" }
|
166
|
+
mock_pact_broker_index(self)
|
167
|
+
|
168
|
+
pact_broker
|
169
|
+
.given("the 'Pricing Service' and 'Condor' already exist in the pact-broker")
|
170
|
+
.upon_receiving("a request to create a webhook with a JSON body for a consumer")
|
171
|
+
.with(
|
172
|
+
method: :post,
|
173
|
+
path: placeholder_path('pb:webhooks'),
|
174
|
+
headers: post_request_headers,
|
175
|
+
body: request_body)
|
176
|
+
.will_respond_with(success_response)
|
177
|
+
end
|
178
|
+
|
179
|
+
it "returns a CommandResult with success = true" do
|
180
|
+
expect(subject.success).to be true
|
181
|
+
expect(subject.message).to eq "Webhook \"A title\" created"
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
context "when only a consumer is specified and it does not exist" do
|
186
|
+
before do
|
187
|
+
params.delete(:provider)
|
188
|
+
request_body["consumer"] = { "name" => "Condor" }
|
189
|
+
mock_pact_broker_index(self)
|
190
|
+
|
191
|
+
pact_broker
|
192
|
+
.upon_receiving("a request to create a webhook with a JSON body for a consumer that does not exist")
|
193
|
+
.with(
|
194
|
+
method: :post,
|
195
|
+
path: placeholder_path('pb:webhooks'),
|
196
|
+
headers: post_request_headers,
|
197
|
+
body: request_body)
|
198
|
+
.will_respond_with(
|
199
|
+
status: 400,
|
200
|
+
headers: pact_broker_response_headers,
|
201
|
+
body: {
|
202
|
+
errors: {
|
203
|
+
"consumer.name" => Pact.each_like("Some error")
|
204
|
+
}
|
205
|
+
})
|
206
|
+
end
|
207
|
+
|
208
|
+
it "returns a CommandResult with success = true" do
|
209
|
+
expect(subject.success).to be false
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
context "when only a provider is specified" do
|
214
|
+
before do
|
215
|
+
params.delete(:consumer)
|
216
|
+
request_body["provider"] = { "name" => "Pricing Service" }
|
217
|
+
mock_pact_broker_index(self)
|
218
|
+
|
219
|
+
pact_broker
|
220
|
+
.given("the 'Pricing Service' and 'Condor' already exist in the pact-broker")
|
221
|
+
.upon_receiving("a request to create a webhook with a JSON body for a provider")
|
222
|
+
.with(
|
223
|
+
method: :post,
|
224
|
+
path: placeholder_path('pb:webhooks'),
|
225
|
+
headers: post_request_headers,
|
226
|
+
body: request_body)
|
227
|
+
.will_respond_with(success_response)
|
228
|
+
end
|
229
|
+
|
230
|
+
it "returns a CommandResult with success = true" do
|
231
|
+
expect(subject.success).to be true
|
232
|
+
end
|
233
|
+
end
|
234
|
+
|
235
|
+
context "when neither consumer nor provider are specified" do
|
236
|
+
before do
|
237
|
+
params.delete(:consumer)
|
238
|
+
params.delete(:provider)
|
239
|
+
mock_pact_broker_index(self)
|
240
|
+
|
241
|
+
pact_broker
|
242
|
+
.upon_receiving("a request to create a global webhook with a JSON body")
|
243
|
+
.with(
|
244
|
+
method: :post,
|
245
|
+
path: placeholder_path('pb:webhooks'),
|
246
|
+
headers: post_request_headers,
|
247
|
+
body: request_body)
|
248
|
+
.will_respond_with(success_response)
|
249
|
+
end
|
250
|
+
|
251
|
+
it "returns a CommandResult with success = true" do
|
252
|
+
expect(subject.success).to be true
|
253
|
+
end
|
254
|
+
end
|
255
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -4,10 +4,42 @@ WebMock.disable_net_connect!(allow_localhost: true)
|
|
4
4
|
|
5
5
|
require "./spec/support/shared_context.rb"
|
6
6
|
|
7
|
+
is_windows = (RbConfig::CONFIG['host_os'] =~ /bccwin|cygwin|djgpp|mingw|mswin|wince/i) != nil
|
8
|
+
|
7
9
|
RSpec.configure do | config |
|
8
10
|
|
9
11
|
config.before(:each) do
|
10
12
|
ENV.delete('PACT_BROKER_BASE_URL')
|
13
|
+
ENV.delete('PACT_BROKER_USERNAME')
|
14
|
+
ENV.delete('PACT_BROKER_PASSWORD')
|
15
|
+
end
|
16
|
+
|
17
|
+
config.after(:all) do
|
18
|
+
Pact::Fixture.check_fixtures
|
11
19
|
end
|
12
20
|
|
21
|
+
config.filter_run_excluding :skip_windows => is_windows
|
22
|
+
config.example_status_persistence_file_path = "./spec/examples.txt"
|
23
|
+
end
|
24
|
+
|
25
|
+
module Pact
|
26
|
+
module Fixture
|
27
|
+
|
28
|
+
def self.add_fixture key, value
|
29
|
+
fixtures[key] ||= []
|
30
|
+
fixtures[key] << value
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.fixtures
|
34
|
+
@fixtures ||= {}
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.check_fixtures
|
38
|
+
fixtures.each do | fixture_group |
|
39
|
+
if fixture_group.size > 1
|
40
|
+
#TODO compare fixtures to ensure they match
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
13
45
|
end
|
@@ -4,7 +4,7 @@
|
|
4
4
|
"href": "http://example.org/pacticipants/Pricing%20Service",
|
5
5
|
"title": "Pricing Service"
|
6
6
|
},
|
7
|
-
"pacts": [
|
7
|
+
"pb:pacts": [
|
8
8
|
{
|
9
9
|
"href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0",
|
10
10
|
"title": "Pact between Condor (v1.3.0) and Pricing Service",
|
@@ -5,13 +5,16 @@ shared_context "pact broker" do
|
|
5
5
|
let(:consumer_contract) { Pact::ConsumerContract.from_hash pact_hash }
|
6
6
|
let(:pact_json) { pact_hash.to_json }
|
7
7
|
let(:pact_broker_client) { PactBroker::Client::PactBrokerClient.new(client_config) }
|
8
|
-
let(:
|
8
|
+
let(:broker_base_url) { 'http://localhost:1234' }
|
9
|
+
let(:client_config) { { base_url: broker_base_url } }
|
9
10
|
let(:consumer_version) { '1.3.0' }
|
10
11
|
let(:version) { '1.3.0' }
|
11
12
|
let(:pact_broker_version) { Pact::Term.new(:matcher => /\d+\.\d+\.\d+/, :generate => '1.0.0') }
|
12
|
-
let(:pact_broker_response_headers) { {} }
|
13
|
+
let(:pact_broker_response_headers) { {'Content-Type' => 'application/hal+json;charset=utf-8'} }
|
13
14
|
let(:default_request_headers) { { 'Content-Type' => 'application/json'} }
|
14
15
|
let(:patch_request_headers) { { 'Content-Type' => 'application/json'} }
|
15
|
-
let(:
|
16
|
+
let(:put_request_headers) { { 'Content-Type' => 'application/json', 'Accept' => 'application/hal+json'} }
|
17
|
+
let(:post_request_headers) { { 'Content-Type' => 'application/json', 'Accept' => 'application/hal+json'} }
|
18
|
+
let(:get_request_headers) { { 'Accept' => 'application/hal+json'} }
|
16
19
|
|
17
20
|
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.15.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: 2018-
|
11
|
+
date: 2018-06-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -185,11 +185,18 @@ files:
|
|
185
185
|
- lib/pact_broker/client/can_i_deploy.rb
|
186
186
|
- lib/pact_broker/client/cli/broker.rb
|
187
187
|
- lib/pact_broker/client/cli/can_i_deploy_long_desc.txt
|
188
|
+
- lib/pact_broker/client/cli/create_webhook_long_desc.txt
|
188
189
|
- lib/pact_broker/client/cli/custom_thor.rb
|
189
190
|
- lib/pact_broker/client/cli/version_selector_options_parser.rb
|
191
|
+
- lib/pact_broker/client/command_result.rb
|
190
192
|
- lib/pact_broker/client/create_tag.rb
|
191
193
|
- lib/pact_broker/client/error.rb
|
192
194
|
- lib/pact_broker/client/git.rb
|
195
|
+
- lib/pact_broker/client/hal.rb
|
196
|
+
- lib/pact_broker/client/hal/entity.rb
|
197
|
+
- lib/pact_broker/client/hal/entry_point.rb
|
198
|
+
- lib/pact_broker/client/hal/http_client.rb
|
199
|
+
- lib/pact_broker/client/hal/link.rb
|
193
200
|
- lib/pact_broker/client/matrix.rb
|
194
201
|
- lib/pact_broker/client/matrix/formatter.rb
|
195
202
|
- lib/pact_broker/client/matrix/json_formatter.rb
|
@@ -210,6 +217,7 @@ files:
|
|
210
217
|
- lib/pact_broker/client/versions/formatter.rb
|
211
218
|
- lib/pact_broker/client/versions/json_formatter.rb
|
212
219
|
- lib/pact_broker/client/versions/text_formatter.rb
|
220
|
+
- lib/pact_broker/client/webhooks/create.rb
|
213
221
|
- lib/pact_broker_client.rb
|
214
222
|
- pact-broker-client.gemspec
|
215
223
|
- script/generate-cli-usage.sh
|
@@ -220,9 +228,13 @@ files:
|
|
220
228
|
- spec/lib/pact_broker/client/base_client_spec.rb
|
221
229
|
- spec/lib/pact_broker/client/can_i_deploy_spec.rb
|
222
230
|
- spec/lib/pact_broker/client/cli/broker_can_i_deploy_spec.rb
|
231
|
+
- spec/lib/pact_broker/client/cli/broker_create_webhook_spec.rb
|
223
232
|
- spec/lib/pact_broker/client/cli/broker_publish_spec.rb
|
224
233
|
- spec/lib/pact_broker/client/cli/custom_thor_spec.rb
|
225
234
|
- spec/lib/pact_broker/client/cli/version_selector_options_parser_spec.rb
|
235
|
+
- spec/lib/pact_broker/client/hal/entity_spec.rb
|
236
|
+
- spec/lib/pact_broker/client/hal/http_client_spec.rb
|
237
|
+
- spec/lib/pact_broker/client/hal/link_spec.rb
|
226
238
|
- spec/lib/pact_broker/client/matrix/text_formatter_spec.rb
|
227
239
|
- spec/lib/pact_broker/client/matrix_spec.rb
|
228
240
|
- spec/lib/pact_broker/client/merge_pacts_spec.rb
|
@@ -232,6 +244,7 @@ files:
|
|
232
244
|
- spec/lib/pact_broker/client/tasks/publication_task_spec.rb
|
233
245
|
- spec/lib/pact_broker/client/versions/describe_spec.rb
|
234
246
|
- spec/lib/pact_broker/client/versions_spec.rb
|
247
|
+
- spec/lib/pact_broker/client/webhooks/create_spec.rb
|
235
248
|
- spec/pacts/pact_broker_client-pact_broker.json
|
236
249
|
- spec/service_providers/extra_goodies_spec.rb
|
237
250
|
- spec/service_providers/pact_broker_client_matrix_spec.rb
|
@@ -239,10 +252,11 @@ files:
|
|
239
252
|
- spec/service_providers/pact_broker_client_publish_spec.rb
|
240
253
|
- spec/service_providers/pact_broker_client_register_repository_spec.rb
|
241
254
|
- spec/service_providers/pact_broker_client_retrieve_all_pacts_for_provider_spec.rb
|
242
|
-
- spec/service_providers/
|
255
|
+
- spec/service_providers/pact_broker_client_retrieve_pact_spec.rb
|
243
256
|
- spec/service_providers/pact_broker_client_tags_spec.rb
|
244
257
|
- spec/service_providers/pact_broker_client_versions_spec.rb
|
245
258
|
- spec/service_providers/pact_helper.rb
|
259
|
+
- spec/service_providers/webhooks_create_spec.rb
|
246
260
|
- spec/spec_helper.rb
|
247
261
|
- spec/support/cli_test_pacts/bar.json
|
248
262
|
- spec/support/cli_test_pacts/foo.json
|
@@ -285,9 +299,13 @@ test_files:
|
|
285
299
|
- spec/lib/pact_broker/client/base_client_spec.rb
|
286
300
|
- spec/lib/pact_broker/client/can_i_deploy_spec.rb
|
287
301
|
- spec/lib/pact_broker/client/cli/broker_can_i_deploy_spec.rb
|
302
|
+
- spec/lib/pact_broker/client/cli/broker_create_webhook_spec.rb
|
288
303
|
- spec/lib/pact_broker/client/cli/broker_publish_spec.rb
|
289
304
|
- spec/lib/pact_broker/client/cli/custom_thor_spec.rb
|
290
305
|
- spec/lib/pact_broker/client/cli/version_selector_options_parser_spec.rb
|
306
|
+
- spec/lib/pact_broker/client/hal/entity_spec.rb
|
307
|
+
- spec/lib/pact_broker/client/hal/http_client_spec.rb
|
308
|
+
- spec/lib/pact_broker/client/hal/link_spec.rb
|
291
309
|
- spec/lib/pact_broker/client/matrix/text_formatter_spec.rb
|
292
310
|
- spec/lib/pact_broker/client/matrix_spec.rb
|
293
311
|
- spec/lib/pact_broker/client/merge_pacts_spec.rb
|
@@ -297,6 +315,7 @@ test_files:
|
|
297
315
|
- spec/lib/pact_broker/client/tasks/publication_task_spec.rb
|
298
316
|
- spec/lib/pact_broker/client/versions/describe_spec.rb
|
299
317
|
- spec/lib/pact_broker/client/versions_spec.rb
|
318
|
+
- spec/lib/pact_broker/client/webhooks/create_spec.rb
|
300
319
|
- spec/pacts/pact_broker_client-pact_broker.json
|
301
320
|
- spec/service_providers/extra_goodies_spec.rb
|
302
321
|
- spec/service_providers/pact_broker_client_matrix_spec.rb
|
@@ -304,10 +323,11 @@ test_files:
|
|
304
323
|
- spec/service_providers/pact_broker_client_publish_spec.rb
|
305
324
|
- spec/service_providers/pact_broker_client_register_repository_spec.rb
|
306
325
|
- spec/service_providers/pact_broker_client_retrieve_all_pacts_for_provider_spec.rb
|
307
|
-
- spec/service_providers/
|
326
|
+
- spec/service_providers/pact_broker_client_retrieve_pact_spec.rb
|
308
327
|
- spec/service_providers/pact_broker_client_tags_spec.rb
|
309
328
|
- spec/service_providers/pact_broker_client_versions_spec.rb
|
310
329
|
- spec/service_providers/pact_helper.rb
|
330
|
+
- spec/service_providers/webhooks_create_spec.rb
|
311
331
|
- spec/spec_helper.rb
|
312
332
|
- spec/support/cli_test_pacts/bar.json
|
313
333
|
- spec/support/cli_test_pacts/foo.json
|