pact_broker 2.43.0 → 2.44.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +24 -1
- data/DEVELOPER_DOCUMENTATION.md +10 -6
- data/README.md +1 -1
- data/lib/pact_broker/api.rb +2 -2
- data/lib/pact_broker/api/decorators/version_decorator.rb +8 -0
- data/lib/pact_broker/db/models.rb +1 -1
- data/lib/pact_broker/doc/views/matrix.markdown +92 -2
- data/lib/pact_broker/matrix/deployment_status_summary.rb +11 -2
- data/lib/pact_broker/matrix/every_row.rb +43 -0
- data/lib/pact_broker/matrix/query_builder.rb +5 -5
- data/lib/pact_broker/matrix/quick_row.rb +96 -28
- data/lib/pact_broker/matrix/reason.rb +3 -0
- data/lib/pact_broker/matrix/repository.rb +33 -35
- data/lib/pact_broker/pacticipants/repository.rb +9 -1
- data/lib/pact_broker/pacts/{latest_pact_publication_id_by_consumer_version.rb → latest_pact_publication_id_for_consumer_version.rb} +0 -0
- data/lib/pact_broker/pacts/repository.rb +1 -1
- data/lib/pact_broker/repositories/helpers.rb +12 -5
- data/lib/pact_broker/version.rb +1 -1
- data/pact_broker.gemspec +1 -1
- data/spec/lib/pact_broker/integrations/service_spec.rb +1 -0
- data/spec/lib/pact_broker/matrix/deployment_status_summary_spec.rb +38 -33
- data/spec/lib/pact_broker/matrix/every_row_spec.rb +136 -0
- data/spec/lib/pact_broker/matrix/integration_spec.rb +149 -30
- data/spec/lib/pact_broker/matrix/repository_dependency_spec.rb +3 -3
- data/spec/lib/pact_broker/matrix/repository_spec.rb +5 -4
- data/spec/lib/pact_broker/pacticipants/repository_spec.rb +37 -3
- data/spec/service_consumers/provider_states_for_pact_ruby.rb +12 -0
- data/spec/support/shared_examples_for_responses.rb +7 -0
- metadata +14 -5
@@ -25,7 +25,7 @@ module PactBroker
|
|
25
25
|
end
|
26
26
|
|
27
27
|
let(:options) do
|
28
|
-
{ latest: true, tag: "prod" }
|
28
|
+
{ latest: true, tag: "prod", latestby: "cvp" }
|
29
29
|
end
|
30
30
|
|
31
31
|
before do
|
@@ -54,10 +54,10 @@ module PactBroker
|
|
54
54
|
end
|
55
55
|
|
56
56
|
let(:selectors) { [{ pacticipant_name: "Bar", latest: true, tag: "test" }]}
|
57
|
-
let(:options) { { tag: "prod" } }
|
57
|
+
let(:options) { { tag: "prod", latestby: "cvp" } }
|
58
58
|
|
59
59
|
it "does not allow the consumer to be deployed" do
|
60
|
-
expect(subject.deployment_status_summary
|
60
|
+
expect(subject.deployment_status_summary).to_not be_deployable
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
@@ -80,7 +80,7 @@ module PactBroker
|
|
80
80
|
end
|
81
81
|
|
82
82
|
it "does not allow the consumer to be deployed" do
|
83
|
-
expect(subject.deployment_status_summary
|
83
|
+
expect(subject.deployment_status_summary).to_not be_deployable
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
@@ -101,18 +101,22 @@ module PactBroker
|
|
101
101
|
[ { pacticipant_name: "Foo", pacticipant_version_number: "3.0.0" } ]
|
102
102
|
end
|
103
103
|
|
104
|
-
let(:options) { {latest: true, tag: "prod"} }
|
104
|
+
let(:options) { {latest: true, tag: "prod", latestby: "cvp"} }
|
105
105
|
|
106
106
|
it "returns 2 integrations" do
|
107
107
|
expect(subject.integrations.size).to eq 2
|
108
108
|
end
|
109
109
|
|
110
|
-
it "returns 1 row" do
|
111
|
-
expect(subject.rows.size).to eq 1
|
110
|
+
it "returns 1 row with a verification" do
|
111
|
+
expect(subject.rows.select(&:has_verification?).size).to eq 1
|
112
|
+
end
|
113
|
+
|
114
|
+
it "returns 1 row without a verification" do
|
115
|
+
expect(subject.rows.reject(&:has_verification?).size).to eq 1
|
112
116
|
end
|
113
117
|
|
114
118
|
it "does not allow the consumer to be deployed" do
|
115
|
-
expect(subject.deployment_status_summary
|
119
|
+
expect(subject.deployment_status_summary).to_not be_deployable
|
116
120
|
end
|
117
121
|
end
|
118
122
|
|
@@ -133,7 +137,7 @@ module PactBroker
|
|
133
137
|
end
|
134
138
|
|
135
139
|
it "allows the old version of the consumer to be deployed" do
|
136
|
-
expect(subject.deployment_status_summary
|
140
|
+
expect(subject.deployment_status_summary).to be_deployable
|
137
141
|
end
|
138
142
|
end
|
139
143
|
|
@@ -146,8 +150,8 @@ module PactBroker
|
|
146
150
|
[ { pacticipant_name: "Bar", pacticipant_version_number: "5" } ]
|
147
151
|
end
|
148
152
|
|
149
|
-
it "does not allow the
|
150
|
-
expect(subject.deployment_status_summary
|
153
|
+
it "does not allow the app to be deployed" do
|
154
|
+
expect(subject.deployment_status_summary).to_not be_deployable
|
151
155
|
end
|
152
156
|
end
|
153
157
|
|
@@ -162,20 +166,19 @@ module PactBroker
|
|
162
166
|
end
|
163
167
|
|
164
168
|
let(:options) do
|
165
|
-
{ latest: true, tag: "prod" }
|
169
|
+
{ latest: true, tag: "prod", latestby: "cvp" }
|
166
170
|
end
|
167
171
|
|
168
172
|
subject { Service.find(selectors, options) }
|
169
173
|
|
170
|
-
it "allows the
|
171
|
-
expect(subject.deployment_status_summary
|
174
|
+
it "allows the app to be deployed" do
|
175
|
+
expect(subject.deployment_status_summary).to be_deployable
|
172
176
|
end
|
173
177
|
end
|
174
178
|
|
175
179
|
describe "when deploying a consumer to prod for the first time and the provider is not yet deployed" do
|
176
180
|
before do
|
177
|
-
td.
|
178
|
-
.create_verification(provider_version: "2")
|
181
|
+
td.create_pact_with_verification("Foo", "1", "Bar", "2")
|
179
182
|
end
|
180
183
|
|
181
184
|
let(:selectors) do
|
@@ -183,18 +186,17 @@ module PactBroker
|
|
183
186
|
end
|
184
187
|
|
185
188
|
let(:options) do
|
186
|
-
{ latest: true, tag: "prod" }
|
189
|
+
{ latest: true, tag: "prod", latestby: "cvp" }
|
187
190
|
end
|
188
191
|
|
189
|
-
it "does not allow the
|
190
|
-
expect(subject.deployment_status_summary
|
192
|
+
it "does not allow the app to be deployed" do
|
193
|
+
expect(subject.deployment_status_summary).to_not be_deployable
|
191
194
|
end
|
192
195
|
end
|
193
196
|
|
194
197
|
describe "when deploying an app that is both a consumer and a provider to prod for the first time and the downstream provider is not yet deployed" do
|
195
198
|
before do
|
196
|
-
td.
|
197
|
-
.create_verification(provider_version: "2")
|
199
|
+
td.create_pact_with_verification("Foo", "1", "Bar", "2")
|
198
200
|
.use_consumer("Bar")
|
199
201
|
.use_consumer_version("2")
|
200
202
|
.create_provider("Baz")
|
@@ -206,18 +208,19 @@ module PactBroker
|
|
206
208
|
end
|
207
209
|
|
208
210
|
let(:options) do
|
209
|
-
{ latest: true, tag: "prod" }
|
211
|
+
{ latest: true, tag: "prod", latestby: "cvp" }
|
210
212
|
end
|
211
213
|
|
212
214
|
it "does not allow the app to be deployed" do
|
213
|
-
expect(subject.deployment_status_summary
|
215
|
+
expect(subject.deployment_status_summary).to_not be_deployable
|
214
216
|
end
|
215
217
|
end
|
216
218
|
|
217
219
|
describe "when deploying an app that is both a consumer and a provider to prod for the first time and the downstream provider has been deployed" do
|
218
220
|
before do
|
219
|
-
|
220
|
-
|
221
|
+
# Foo v1 => Bar v2
|
222
|
+
# Bar v2 => Baz v4 (prod)
|
223
|
+
td.create_pact_with_verification("Foo", "1", "Bar", "2")
|
221
224
|
.use_consumer("Bar")
|
222
225
|
.use_consumer_version("2")
|
223
226
|
.create_provider("Baz")
|
@@ -229,12 +232,64 @@ module PactBroker
|
|
229
232
|
[ { pacticipant_name: "Bar", pacticipant_version_number: "2" } ]
|
230
233
|
end
|
231
234
|
|
235
|
+
# Deploy Bar v2 to prod
|
232
236
|
let(:options) do
|
233
|
-
{ latest: true, tag: "prod" }
|
237
|
+
{ latest: true, tag: "prod", latestby: "cvp" }
|
234
238
|
end
|
235
239
|
|
236
240
|
it "allows the app to be deployed" do
|
237
|
-
expect(subject.deployment_status_summary
|
241
|
+
expect(subject.deployment_status_summary).to be_deployable
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
describe "when deploying a provider where the pact has not been verified" do
|
246
|
+
before do
|
247
|
+
# Foo v1 => Bar ?
|
248
|
+
td.create_pact_with_hierarchy("Foo", "1", "Bar")
|
249
|
+
.create_provider_version("2")
|
250
|
+
end
|
251
|
+
|
252
|
+
let(:selectors) do
|
253
|
+
[ { pacticipant_name: "Bar", pacticipant_version_number: "2" } ]
|
254
|
+
end
|
255
|
+
|
256
|
+
# Deploy Bar v2 to prod
|
257
|
+
let(:options) do
|
258
|
+
{ latest: true, tag: "prod", latestby: "cvp" }
|
259
|
+
end
|
260
|
+
|
261
|
+
it "allows the app to be deployed" do
|
262
|
+
# no integrations and no matrix rows
|
263
|
+
expect(subject.deployment_status_summary).to be_deployable
|
264
|
+
end
|
265
|
+
end
|
266
|
+
|
267
|
+
describe "when deploying a consumer where the pact has been verified, but not by the required provider version" do
|
268
|
+
before do
|
269
|
+
# Foo v1 => Bar v2
|
270
|
+
td.create_pact_with_hierarchy("Foo", "1", "Bar")
|
271
|
+
.create_provider_version("2")
|
272
|
+
.create_provider_version_tag("prod")
|
273
|
+
.create_provider_version("3")
|
274
|
+
.create_verification(comment: "the verification is not from the required provider version")
|
275
|
+
end
|
276
|
+
|
277
|
+
let(:selectors) do
|
278
|
+
[ { pacticipant_name: "Foo", pacticipant_version_number: "1" } ]
|
279
|
+
end
|
280
|
+
|
281
|
+
# Deploy Foo v1 to prod
|
282
|
+
let(:options) do
|
283
|
+
{ latest: true, tag: "prod", latestby: "cvp" }
|
284
|
+
end
|
285
|
+
|
286
|
+
# Currently returning PactNotEverVerifiedByProvider because the matrix response has changed from 'no row' to
|
287
|
+
# 'one row with no verification details' (left outer join stuff).
|
288
|
+
# Not sure if the 'no row' usecase can ever happen now.
|
289
|
+
# The messages shown to the user for 'not ever verified' and 'verified by the wrong provider version'
|
290
|
+
# are the same however, so the code does not need to be updated straight away.
|
291
|
+
it "returns a reason indicating that the pact has not been verified by the required provider version", pending: true do
|
292
|
+
expect(subject.deployment_status_summary.reasons.first).to be_a(PactBroker::Matrix::PactNotVerifiedByRequiredProviderVersion)
|
238
293
|
end
|
239
294
|
end
|
240
295
|
|
@@ -258,7 +313,7 @@ module PactBroker
|
|
258
313
|
let(:options) { { latestby: "cvpv" } }
|
259
314
|
|
260
315
|
it "does not allow the two apps to be deployed together" do
|
261
|
-
expect(subject.deployment_status_summary
|
316
|
+
expect(subject.deployment_status_summary).to_not be_deployable
|
262
317
|
end
|
263
318
|
end
|
264
319
|
|
@@ -272,11 +327,75 @@ module PactBroker
|
|
272
327
|
let(:options) { { latestby: "cvp", latest: true } }
|
273
328
|
|
274
329
|
it "does not allow the two apps to be deployed together" do
|
275
|
-
expect(subject.deployment_status_summary
|
330
|
+
expect(subject.deployment_status_summary).to_not be_deployable
|
331
|
+
end
|
332
|
+
end
|
333
|
+
end
|
334
|
+
|
335
|
+
describe "specifying a provider which has multiple prod versions of one consumer (explicit) and a single version of another (inferred)" do
|
336
|
+
before do
|
337
|
+
# Foo 1 (prod) -> Bar 2 [explicit]
|
338
|
+
# Foo 2 (prod) -> Bar 2 [explicit]
|
339
|
+
# Foo 3 -> Bar 2 failed [explicit]
|
340
|
+
# Cat 20 (prod) -> Bar ? [inferred, missing verification]
|
341
|
+
# Dog 40 -> Bar 2 failed [inferred, but not in prod]
|
342
|
+
|
343
|
+
td.create_pact_with_verification("Foo", "1", "Bar", "2")
|
344
|
+
.create_consumer_version_tag("prod")
|
345
|
+
.create_consumer_version("2")
|
346
|
+
.create_consumer_version_tag("prod")
|
347
|
+
.create_pact
|
348
|
+
.create_verification(provider_version: "2")
|
349
|
+
.create_consumer_version("3")
|
350
|
+
.create_pact
|
351
|
+
.create_verification(provider_version: "2", success: false, comment: "not prod, doesn't matter")
|
352
|
+
.create_consumer("Cat")
|
353
|
+
.create_consumer_version("20")
|
354
|
+
.create_consumer_version_tag("prod")
|
355
|
+
.create_pact
|
356
|
+
.comment("missing verification")
|
357
|
+
.create_consumer("Dog")
|
358
|
+
.create_consumer_version("40")
|
359
|
+
.create_pact
|
360
|
+
.create_verification(provider_version: "2")
|
361
|
+
end
|
362
|
+
|
363
|
+
let(:selector_1) { { pacticipant_name: "Bar", pacticipant_version_number: "2" } }
|
364
|
+
let(:selector_2) { { pacticipant_name: "Foo", tag: "prod" } }
|
365
|
+
let(:selectors) { [ selector_1, selector_2 ] }
|
366
|
+
|
367
|
+
subject { Service.find(selectors, options) }
|
368
|
+
|
369
|
+
context "with inferred selectors" do
|
370
|
+
let(:options) { { latest: true, tag: "prod"} }
|
371
|
+
|
372
|
+
it "determines the number of integrations" do
|
373
|
+
expect(subject.integrations.size).to eq 3
|
374
|
+
end
|
375
|
+
|
376
|
+
it "finds all prod versions of Foo" do
|
377
|
+
expect(subject.select { |row| row.consumer_name == "Foo"}.size).to eq 2
|
378
|
+
end
|
379
|
+
|
380
|
+
it "finds the single prod version of Cat" do
|
381
|
+
expect(subject.select { |row| row.consumer_name == "Cat"}.size).to eq 1
|
382
|
+
end
|
383
|
+
|
384
|
+
it "is not deployable because of the missing verification for Cat v20" do
|
385
|
+
expect(subject.deployment_status_summary.reasons.size).to eq 1
|
386
|
+
expect(subject.deployment_status_summary.reasons.first).to be_a_pact_never_verified_for_consumer "Cat"
|
387
|
+
end
|
388
|
+
end
|
389
|
+
|
390
|
+
context "without inferred selectors" do
|
391
|
+
let(:options) { {} }
|
392
|
+
|
393
|
+
it "is deployable" do
|
394
|
+
expect(subject.deployment_status_summary).to be_deployable
|
276
395
|
end
|
277
396
|
end
|
278
397
|
end
|
279
398
|
end
|
280
399
|
end
|
281
400
|
end
|
282
|
-
end
|
401
|
+
end
|
@@ -48,9 +48,9 @@ module PactBroker
|
|
48
48
|
subject { shorten_rows(rows) }
|
49
49
|
let(:results) { Repository.new.find(selectors, options) }
|
50
50
|
|
51
|
-
it "returns an
|
52
|
-
expect(results).
|
53
|
-
expect(results.resolved_selectors.find{ |s | s[:pacticipant_name] == "Bar"}
|
51
|
+
it "returns an array with one row that does not have a verification" do
|
52
|
+
expect(results.first).to_not have_verification
|
53
|
+
expect(results.resolved_selectors.find{ |s | s[:pacticipant_name] == "Bar"}.pacticipant_version_id).to eq -1
|
54
54
|
end
|
55
55
|
end
|
56
56
|
end
|
@@ -54,7 +54,7 @@ module PactBroker
|
|
54
54
|
|
55
55
|
context "when a limit is specified" do
|
56
56
|
let(:selectors) { build_selectors('A' => nil) }
|
57
|
-
let(:options) { {limit: 1} }
|
57
|
+
let(:options) { { limit: 1 } }
|
58
58
|
|
59
59
|
it "returns fewer rows than the limit (because some of the logic is done in the code, there may be fewer than the limit - need to fix this)" do
|
60
60
|
expect(subject).to eq ["A2 B? n?"]
|
@@ -606,7 +606,7 @@ module PactBroker
|
|
606
606
|
end
|
607
607
|
|
608
608
|
it "returns the tag information" do
|
609
|
-
expect(subject.first
|
609
|
+
expect(subject.first.provider_version_tags).to include_hash_matching name: 'prod', latest: 1
|
610
610
|
end
|
611
611
|
end
|
612
612
|
|
@@ -647,8 +647,9 @@ module PactBroker
|
|
647
647
|
]
|
648
648
|
end
|
649
649
|
|
650
|
-
it "returns no
|
651
|
-
expect(subject.size).to eq
|
650
|
+
it "returns a row with no verification" do
|
651
|
+
expect(subject.size).to eq 1
|
652
|
+
expect(subject.first).to_not have_verification
|
652
653
|
end
|
653
654
|
end
|
654
655
|
end
|
@@ -60,10 +60,10 @@ module PactBroker
|
|
60
60
|
end
|
61
61
|
describe "#find_by_name" do
|
62
62
|
before do
|
63
|
-
|
63
|
+
td.create_pacticipant("Foo-Bar")
|
64
64
|
end
|
65
65
|
|
66
|
-
subject { Repository.new.find_by_name('foo
|
66
|
+
subject { Repository.new.find_by_name('foo-bar') }
|
67
67
|
|
68
68
|
context "when the name is a different case" do
|
69
69
|
context "with case sensitivity turned on" do
|
@@ -83,9 +83,43 @@ module PactBroker
|
|
83
83
|
|
84
84
|
it "returns the pacticipant" do
|
85
85
|
expect(subject).to_not be nil
|
86
|
-
expect(subject.name).to eq "Foo
|
86
|
+
expect(subject.name).to eq "Foo-Bar"
|
87
87
|
end
|
88
88
|
end
|
89
|
+
|
90
|
+
context "with case sensitivity turned off and multiple records found", skip: DB.mysql? do
|
91
|
+
# Can't be created in MySQL - duplicate record
|
92
|
+
before do
|
93
|
+
td.create_pacticipant("Foo-bar")
|
94
|
+
allow(PactBroker.configuration).to receive(:use_case_sensitive_resource_names).and_return(false)
|
95
|
+
end
|
96
|
+
|
97
|
+
it "raises an error" do
|
98
|
+
expect { subject }.to raise_error PactBroker::Error, /Found multiple pacticipants.*foo-bar/
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
context "with case sensitivity turned off and searching for a name with an underscore" do
|
103
|
+
before do
|
104
|
+
allow(PactBroker.configuration).to receive(:use_case_sensitive_resource_names).and_return(false)
|
105
|
+
end
|
106
|
+
|
107
|
+
subject { Repository.new.find_by_name('foo_bar') }
|
108
|
+
|
109
|
+
it { is_expected.to be nil }
|
110
|
+
end
|
111
|
+
|
112
|
+
context "with case sensitivity turned on and searching for a name with an underscore" do
|
113
|
+
subject { Repository.new.find_by_name('foo_bar') }
|
114
|
+
|
115
|
+
it { is_expected.to be nil }
|
116
|
+
end
|
117
|
+
|
118
|
+
context "with case sensitivity turned off no record found" do
|
119
|
+
subject { Repository.new.find_by_name('blah') }
|
120
|
+
|
121
|
+
it { is_expected.to be nil }
|
122
|
+
end
|
89
123
|
end
|
90
124
|
end
|
91
125
|
|
@@ -143,4 +143,16 @@ Pact.provider_states_for "Pact Ruby" do
|
|
143
143
|
.create_pact
|
144
144
|
end
|
145
145
|
end
|
146
|
+
|
147
|
+
provider_state "the relation for retrieving pacts for verifications exists in the index resource" do
|
148
|
+
no_op
|
149
|
+
end
|
150
|
+
|
151
|
+
provider_state "Foo has a pact tagged cdev with provider Bar" do
|
152
|
+
set_up do
|
153
|
+
TestDataBuilder.new
|
154
|
+
.create_pact_with_hierarchy("Foo", "1", "Bar")
|
155
|
+
.create_consumer_version_tag("cdev")
|
156
|
+
end
|
157
|
+
end
|
146
158
|
end
|
@@ -76,3 +76,10 @@ RSpec::Matchers.define :include_hash_matching do |expected|
|
|
76
76
|
end
|
77
77
|
end
|
78
78
|
end
|
79
|
+
|
80
|
+
RSpec::Matchers.define :be_a_pact_never_verified_for_consumer do | expected_consumer_name |
|
81
|
+
match do | actual_reason |
|
82
|
+
expect(actual_reason).to be_a(PactBroker::Matrix::PactNotEverVerifiedByProvider)
|
83
|
+
expect(actual_reason.consumer_selector.pacticipant_name).to eq expected_consumer_name
|
84
|
+
end
|
85
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pact_broker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.44.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bethany Skurrie
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2020-01-
|
13
|
+
date: 2020-01-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: httparty
|
@@ -174,16 +174,22 @@ dependencies:
|
|
174
174
|
name: pact-support
|
175
175
|
requirement: !ruby/object:Gem::Requirement
|
176
176
|
requirements:
|
177
|
+
- - "~>"
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '1.12'
|
177
180
|
- - ">="
|
178
181
|
- !ruby/object:Gem::Version
|
179
|
-
version:
|
182
|
+
version: 1.12.1
|
180
183
|
type: :runtime
|
181
184
|
prerelease: false
|
182
185
|
version_requirements: !ruby/object:Gem::Requirement
|
183
186
|
requirements:
|
187
|
+
- - "~>"
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '1.12'
|
184
190
|
- - ">="
|
185
191
|
- !ruby/object:Gem::Version
|
186
|
-
version:
|
192
|
+
version: 1.12.1
|
187
193
|
- !ruby/object:Gem::Dependency
|
188
194
|
name: padrino-core
|
189
195
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1006,6 +1012,7 @@ files:
|
|
1006
1012
|
- lib/pact_broker/matrix/aggregated_row.rb
|
1007
1013
|
- lib/pact_broker/matrix/can_i_deploy_query_schema.rb
|
1008
1014
|
- lib/pact_broker/matrix/deployment_status_summary.rb
|
1015
|
+
- lib/pact_broker/matrix/every_row.rb
|
1009
1016
|
- lib/pact_broker/matrix/head_row.rb
|
1010
1017
|
- lib/pact_broker/matrix/integration.rb
|
1011
1018
|
- lib/pact_broker/matrix/parse_can_i_deploy_query.rb
|
@@ -1032,7 +1039,7 @@ files:
|
|
1032
1039
|
- lib/pact_broker/pacts/generate_interaction_sha.rb
|
1033
1040
|
- lib/pact_broker/pacts/generate_sha.rb
|
1034
1041
|
- lib/pact_broker/pacts/head_pact.rb
|
1035
|
-
- lib/pact_broker/pacts/
|
1042
|
+
- lib/pact_broker/pacts/latest_pact_publication_id_for_consumer_version.rb
|
1036
1043
|
- lib/pact_broker/pacts/latest_pact_publications.rb
|
1037
1044
|
- lib/pact_broker/pacts/latest_pact_publications_by_consumer_version.rb
|
1038
1045
|
- lib/pact_broker/pacts/latest_tagged_pact_publications.rb
|
@@ -1417,6 +1424,7 @@ files:
|
|
1417
1424
|
- spec/lib/pact_broker/labels/service_spec.rb
|
1418
1425
|
- spec/lib/pact_broker/matrix/aggregated_row_spec.rb
|
1419
1426
|
- spec/lib/pact_broker/matrix/deployment_status_summary_spec.rb
|
1427
|
+
- spec/lib/pact_broker/matrix/every_row_spec.rb
|
1420
1428
|
- spec/lib/pact_broker/matrix/head_row_spec.rb
|
1421
1429
|
- spec/lib/pact_broker/matrix/integration_spec.rb
|
1422
1430
|
- spec/lib/pact_broker/matrix/parse_query_spec.rb
|
@@ -1789,6 +1797,7 @@ test_files:
|
|
1789
1797
|
- spec/lib/pact_broker/labels/service_spec.rb
|
1790
1798
|
- spec/lib/pact_broker/matrix/aggregated_row_spec.rb
|
1791
1799
|
- spec/lib/pact_broker/matrix/deployment_status_summary_spec.rb
|
1800
|
+
- spec/lib/pact_broker/matrix/every_row_spec.rb
|
1792
1801
|
- spec/lib/pact_broker/matrix/head_row_spec.rb
|
1793
1802
|
- spec/lib/pact_broker/matrix/integration_spec.rb
|
1794
1803
|
- spec/lib/pact_broker/matrix/parse_query_spec.rb
|