pact_broker-client 1.34.0 → 1.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +23 -0
- data/CHANGELOG.md +8 -0
- data/README.md +15 -3
- data/doc/pacts/markdown/Pact Broker Client - Pact Broker.md +48 -8
- data/lib/pact_broker/client/matrix/text_formatter.rb +44 -11
- data/lib/pact_broker/client/version.rb +1 -1
- data/pact-broker-client.gemspec +1 -0
- data/spec/lib/pact_broker/client/matrix/text_formatter_spec.rb +29 -4
- data/spec/pacts/pact_broker_client-pact_broker.json +48 -8
- data/spec/support/matrix.json +6 -1
- data/spec/support/matrix.txt +3 -3
- data/spec/support/matrix_error.txt +3 -3
- data/spec/support/matrix_with_results.txt +10 -0
- metadata +20 -4
- data/.travis.yml +0 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1bf1176c39519652e60c6aab383a941a2dd5a1c8e968b746741a290e68c736e9
|
|
4
|
+
data.tar.gz: 04b1f3aa9f25b353e61eb558d393d108750cd97b4645fe81313b1d04dca33ba5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cbb4fe27ce2979d3daea2c597ca7509b6d4136ac53d139a738fd672f30d114fcce23ce4f3ba3c108aef13ec88b9793715bf57ec05a2fda6255dfcd7ed9c99875
|
|
7
|
+
data.tar.gz: 443c3e2e5fb75bcbfa3850ce1498f859c45872145f813c50b260a9a7d28a32f5aa7618c1f55b0c798b34975ec7b35d7e44b0937c6bd2575dea1b86356eb8ca5b
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: Test
|
|
2
|
+
|
|
3
|
+
on: push
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
test:
|
|
7
|
+
runs-on: "ubuntu-latest"
|
|
8
|
+
continue-on-error: ${{ matrix.experimental }}
|
|
9
|
+
strategy:
|
|
10
|
+
fail-fast: false
|
|
11
|
+
matrix:
|
|
12
|
+
ruby_version: ["2.2", "2.7"]
|
|
13
|
+
experimental: [false]
|
|
14
|
+
include:
|
|
15
|
+
- ruby_version: "3.0"
|
|
16
|
+
experimental: true
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v2
|
|
19
|
+
- uses: ruby/setup-ruby@v1
|
|
20
|
+
with:
|
|
21
|
+
ruby-version: ${{ matrix.ruby_version }}
|
|
22
|
+
- run: "bundle install"
|
|
23
|
+
- run: "bundle exec rake"
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
<a name="v1.35.0"></a>
|
|
2
|
+
### v1.35.0 (2021-01-21)
|
|
3
|
+
|
|
4
|
+
#### Features
|
|
5
|
+
|
|
6
|
+
* **can-i-deploy**
|
|
7
|
+
* display links to verification results in the output of can-i-deploy when using text format ([976950d](/../../commit/976950d))
|
|
8
|
+
|
|
1
9
|
<a name="v1.34.0"></a>
|
|
2
10
|
### v1.34.0 (2020-11-20)
|
|
3
11
|
|
data/README.md
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
A client for the Pact Broker. Publishes and retrieves pacts, verification results, pacticipants, pacticipant versions and tags. The functionality is available via a CLI, or via Ruby Rake tasks. You can also use the [Pact CLI Docker image](https://hub.docker.com/r/pactfoundation/pact-cli).
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
[](http://badge.fury.io/rb/pact_broker-client)
|
|
6
8
|
|
|
7
9
|

|
|
8
10
|
|
|
@@ -16,9 +18,19 @@ Download the latest [pact-ruby-standalone][pact-ruby-standalone] package. You do
|
|
|
16
18
|
|
|
17
19
|
Add `gem 'pact_broker-client'` to your Gemfile and run `bundle install`, or install the gem directly by running `gem install pact_broker-client`.
|
|
18
20
|
|
|
21
|
+
## Connecting to a Pact Broker with a self signed certificate
|
|
22
|
+
|
|
23
|
+
To connect to a Pact Broker that uses custom SSL cerificates, set the environment variable `$SSL_CERT_FILE` or `$SSL_CERT_DIR` to a path that contains the appropriate certificate. Read more at https://docs.pact.io/pact_broker/advanced_topics/using-tls#for-non-jvm
|
|
24
|
+
|
|
19
25
|
## Usage - CLI
|
|
20
26
|
|
|
21
|
-
|
|
27
|
+
The Pact Broker base URL can be specified either using the environment variable `$PACT_BROKER_BASE_URL` or the `-b` or `--broker-base-url` parameters.
|
|
28
|
+
|
|
29
|
+
Pact Broker authentication can be performed either using basic auth or a bearer token.
|
|
30
|
+
|
|
31
|
+
Basic auth parameters can be specified using the `$PACT_BROKER_USERNAME` and `$PACT_BROKER_PASSWORD` environment variables, or the `-u` or `--broker-username` and `-p` or `--broker-password` parameters.
|
|
32
|
+
|
|
33
|
+
Authentication using a bearer token can be specified using the environment variable `$PACT_BROKER_TOKEN` or the `-k` or `--broker-token` parameters. This authentication system is used by [Pactflow](pactflow.io).
|
|
22
34
|
|
|
23
35
|
### publish
|
|
24
36
|
|
|
@@ -188,7 +200,7 @@ Can I deploy all the applications in my monorepo to prod?
|
|
|
188
200
|
--pacticipant B --version a7e28207 \
|
|
189
201
|
--pacticipant C --version a7e28207 \
|
|
190
202
|
--to prod \
|
|
191
|
-
--broker-base-url BROKER_BASE_URL
|
|
203
|
+
--broker-base-url BROKER_BASE_URL
|
|
192
204
|
|
|
193
205
|
Mobile provider use case - can I deploy version b80e7b1b of Bar, all versions of Foo with tag "prod", and the latest version tagged "prod" of any other automatically calculated dependencies together? (Eg. where Bar is a provider and Foo is a mobile consumer with multiple versions in production, and Bar also has its own providers it needs to be compatible with.)
|
|
194
206
|
|
|
@@ -164,7 +164,12 @@ Pact Broker will respond with:
|
|
|
164
164
|
},
|
|
165
165
|
"verificationResult": {
|
|
166
166
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
|
167
|
-
"success": true
|
|
167
|
+
"success": true,
|
|
168
|
+
"_links": {
|
|
169
|
+
"self": {
|
|
170
|
+
"href": "http://result"
|
|
171
|
+
}
|
|
172
|
+
}
|
|
168
173
|
},
|
|
169
174
|
"pact": {
|
|
170
175
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
|
@@ -185,7 +190,12 @@ Pact Broker will respond with:
|
|
|
185
190
|
},
|
|
186
191
|
"verificationResult": {
|
|
187
192
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
|
188
|
-
"success": true
|
|
193
|
+
"success": true,
|
|
194
|
+
"_links": {
|
|
195
|
+
"self": {
|
|
196
|
+
"href": "http://result"
|
|
197
|
+
}
|
|
198
|
+
}
|
|
189
199
|
},
|
|
190
200
|
"pact": {
|
|
191
201
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
|
@@ -233,7 +243,12 @@ Pact Broker will respond with:
|
|
|
233
243
|
},
|
|
234
244
|
"verificationResult": {
|
|
235
245
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
|
236
|
-
"success": true
|
|
246
|
+
"success": true,
|
|
247
|
+
"_links": {
|
|
248
|
+
"self": {
|
|
249
|
+
"href": "http://result"
|
|
250
|
+
}
|
|
251
|
+
}
|
|
237
252
|
},
|
|
238
253
|
"pact": {
|
|
239
254
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
|
@@ -281,7 +296,12 @@ Pact Broker will respond with:
|
|
|
281
296
|
},
|
|
282
297
|
"verificationResult": {
|
|
283
298
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
|
284
|
-
"success": true
|
|
299
|
+
"success": true,
|
|
300
|
+
"_links": {
|
|
301
|
+
"self": {
|
|
302
|
+
"href": "http://result"
|
|
303
|
+
}
|
|
304
|
+
}
|
|
285
305
|
},
|
|
286
306
|
"pact": {
|
|
287
307
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
|
@@ -329,7 +349,12 @@ Pact Broker will respond with:
|
|
|
329
349
|
},
|
|
330
350
|
"verificationResult": {
|
|
331
351
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
|
332
|
-
"success": true
|
|
352
|
+
"success": true,
|
|
353
|
+
"_links": {
|
|
354
|
+
"self": {
|
|
355
|
+
"href": "http://result"
|
|
356
|
+
}
|
|
357
|
+
}
|
|
333
358
|
},
|
|
334
359
|
"pact": {
|
|
335
360
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
|
@@ -413,7 +438,12 @@ Pact Broker will respond with:
|
|
|
413
438
|
},
|
|
414
439
|
"verificationResult": {
|
|
415
440
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
|
416
|
-
"success": true
|
|
441
|
+
"success": true,
|
|
442
|
+
"_links": {
|
|
443
|
+
"self": {
|
|
444
|
+
"href": "http://result"
|
|
445
|
+
}
|
|
446
|
+
}
|
|
417
447
|
},
|
|
418
448
|
"pact": {
|
|
419
449
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
|
@@ -484,7 +514,12 @@ Pact Broker will respond with:
|
|
|
484
514
|
},
|
|
485
515
|
"verificationResult": {
|
|
486
516
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
|
487
|
-
"success": true
|
|
517
|
+
"success": true,
|
|
518
|
+
"_links": {
|
|
519
|
+
"self": {
|
|
520
|
+
"href": "http://result"
|
|
521
|
+
}
|
|
522
|
+
}
|
|
488
523
|
},
|
|
489
524
|
"pact": {
|
|
490
525
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
|
@@ -735,7 +770,12 @@ Pact Broker will respond with:
|
|
|
735
770
|
},
|
|
736
771
|
"verificationResult": {
|
|
737
772
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
|
738
|
-
"success": true
|
|
773
|
+
"success": true,
|
|
774
|
+
"_links": {
|
|
775
|
+
"self": {
|
|
776
|
+
"href": "http://result"
|
|
777
|
+
}
|
|
778
|
+
}
|
|
739
779
|
},
|
|
740
780
|
"pact": {
|
|
741
781
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
|
@@ -1,41 +1,74 @@
|
|
|
1
1
|
require 'table_print'
|
|
2
|
+
require 'dig_rb'
|
|
2
3
|
|
|
3
4
|
module PactBroker
|
|
4
5
|
module Client
|
|
5
6
|
class Matrix
|
|
6
7
|
class TextFormatter
|
|
7
8
|
|
|
8
|
-
Line = Struct.new(:consumer, :consumer_version, :provider, :provider_version, :success)
|
|
9
|
+
Line = Struct.new(:consumer, :consumer_version, :provider, :provider_version, :success, :ref)
|
|
9
10
|
|
|
10
11
|
OPTIONS = [
|
|
11
12
|
{ consumer: {} },
|
|
12
13
|
{ consumer_version: {display_name: 'C.VERSION'} },
|
|
13
14
|
{ provider: {} },
|
|
14
15
|
{ provider_version: {display_name: 'P.VERSION'} },
|
|
15
|
-
{ success: {display_name: 'SUCCESS?'} }
|
|
16
|
+
{ success: {display_name: 'SUCCESS?'} },
|
|
17
|
+
{ ref: { display_name: 'RESULT#' }}
|
|
16
18
|
]
|
|
17
19
|
|
|
18
20
|
def self.call(matrix)
|
|
19
21
|
matrix_rows = matrix[:matrix]
|
|
20
22
|
return "" if matrix_rows.size == 0
|
|
21
|
-
|
|
23
|
+
verification_result_number = 0
|
|
24
|
+
data = matrix_rows.each_with_index.collect do | line |
|
|
25
|
+
has_verification_result_url = lookup(line, nil, :verificationResult, :_links, :self, :href)
|
|
26
|
+
if has_verification_result_url
|
|
27
|
+
verification_result_number += 1
|
|
28
|
+
end
|
|
22
29
|
Line.new(
|
|
23
|
-
lookup(line, :consumer, :name),
|
|
24
|
-
lookup(line, :consumer, :version, :number),
|
|
25
|
-
lookup(line, :provider, :name),
|
|
26
|
-
lookup(line, :provider, :version, :number),
|
|
27
|
-
lookup(line, :verificationResult, :success).to_s
|
|
30
|
+
lookup(line, "???", :consumer, :name),
|
|
31
|
+
lookup(line, "???", :consumer, :version, :number),
|
|
32
|
+
lookup(line, "???", :provider, :name) ,
|
|
33
|
+
lookup(line, "???", :provider, :version, :number),
|
|
34
|
+
(lookup(line, "???", :verificationResult, :success)).to_s,
|
|
35
|
+
has_verification_result_url ? verification_result_number : ""
|
|
28
36
|
)
|
|
29
37
|
end
|
|
30
38
|
|
|
31
39
|
printer = TablePrint::Printer.new(data, OPTIONS)
|
|
32
|
-
printer.table_print
|
|
40
|
+
printer.table_print + verification_result_urls_text(matrix)
|
|
33
41
|
end
|
|
34
42
|
|
|
35
|
-
def self.lookup line, *keys
|
|
43
|
+
def self.lookup line, default, *keys
|
|
36
44
|
keys.reduce(line) { | line, key | line[key] }
|
|
37
45
|
rescue NoMethodError
|
|
38
|
-
|
|
46
|
+
default
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def self.verification_results_urls_and_successes(matrix)
|
|
50
|
+
(matrix[:matrix] || []).collect do | row |
|
|
51
|
+
url = row.dig(:verificationResult, :_links, :self, :href)
|
|
52
|
+
if url
|
|
53
|
+
success = row.dig(:verificationResult, :success)
|
|
54
|
+
[url, success]
|
|
55
|
+
else
|
|
56
|
+
nil
|
|
57
|
+
end
|
|
58
|
+
end.compact
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def self.verification_result_urls_text(matrix)
|
|
62
|
+
text = self.verification_results_urls_and_successes(matrix).each_with_index.collect do |(url, success), i|
|
|
63
|
+
status = success ? 'success' : 'failure'
|
|
64
|
+
"#{i+1}. #{url} (#{status})"
|
|
65
|
+
end.join("\n")
|
|
66
|
+
|
|
67
|
+
if text.size > 0
|
|
68
|
+
"\n\nVERIFICATION RESULTS\n--------------------\n#{text}"
|
|
69
|
+
else
|
|
70
|
+
text
|
|
71
|
+
end
|
|
39
72
|
end
|
|
40
73
|
end
|
|
41
74
|
end
|
data/pact-broker-client.gemspec
CHANGED
|
@@ -26,6 +26,7 @@ Gem::Specification.new do |gem|
|
|
|
26
26
|
gem.add_runtime_dependency 'table_print', '~> 1.5'
|
|
27
27
|
gem.add_runtime_dependency 'thor', '>= 0.20', '< 2.0'
|
|
28
28
|
gem.add_runtime_dependency 'rake', '~> 13.0' #For FileList
|
|
29
|
+
gem.add_runtime_dependency 'dig_rb', '~> 1.0'
|
|
29
30
|
|
|
30
31
|
gem.add_development_dependency 'fakefs', '~> 0.4'
|
|
31
32
|
gem.add_development_dependency 'webmock', '~> 3.0'
|
|
@@ -1,29 +1,54 @@
|
|
|
1
|
+
require 'pact_broker/client/matrix/resource'
|
|
1
2
|
require 'pact_broker/client/matrix/text_formatter'
|
|
2
3
|
|
|
3
4
|
module PactBroker
|
|
4
5
|
module Client
|
|
5
6
|
describe Matrix::TextFormatter do
|
|
6
|
-
let(:
|
|
7
|
+
let(:matrix) { PactBroker::Client::Matrix::Resource.new(JSON.parse(File.read('spec/support/matrix.json'), symbolize_names: true)) }
|
|
7
8
|
let(:expected_matrix_lines) { File.read('spec/support/matrix.txt') }
|
|
8
9
|
|
|
9
10
|
# SublimeText removes whitespace from the end of files when you save them,
|
|
10
11
|
# so removing trailing whitespace before comparing
|
|
11
|
-
|
|
12
|
+
def strip_trailing_whitespace(text)
|
|
13
|
+
text.split("\n").collect(&:strip).join("\n")
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
subject { strip_trailing_whitespace(Matrix::TextFormatter.call(matrix)) }
|
|
12
17
|
|
|
13
18
|
context "with valid data" do
|
|
14
19
|
it "it has the right text" do
|
|
15
|
-
expect(subject).to
|
|
20
|
+
expect(subject).to start_with expected_matrix_lines
|
|
16
21
|
end
|
|
17
22
|
end
|
|
18
23
|
|
|
19
24
|
context "with invalid data" do
|
|
20
25
|
let(:expected_matrix_lines) { File.read('spec/support/matrix_error.txt') }
|
|
21
|
-
let(:
|
|
26
|
+
let(:matrix) { PactBroker::Client::Matrix::Resource.new(matrix: [{}]) }
|
|
22
27
|
|
|
23
28
|
it "doesn't blow up" do
|
|
24
29
|
expect(subject).to eq expected_matrix_lines
|
|
25
30
|
end
|
|
26
31
|
end
|
|
32
|
+
|
|
33
|
+
context "when some rows have a verification result URL and some don't" do
|
|
34
|
+
let(:matrix_lines) do
|
|
35
|
+
line_creator = -> { JSON.parse(File.read('spec/support/matrix.json'), symbolize_names: true)[:matrix].first }
|
|
36
|
+
line_1 = line_creator.call
|
|
37
|
+
line_2 = line_creator.call
|
|
38
|
+
line_3 = line_creator.call
|
|
39
|
+
line_2[:verificationResult] = nil
|
|
40
|
+
line_3[:verificationResult][:success] = false
|
|
41
|
+
[line_1, line_2, line_3]
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
let(:matrix) { PactBroker::Client::Matrix::Resource.new(matrix: matrix_lines) }
|
|
45
|
+
|
|
46
|
+
let(:expected_matrix_lines) { File.read('spec/support/matrix_with_results.txt') }
|
|
47
|
+
|
|
48
|
+
it "only provides a result number for the lines that have a result URL" do
|
|
49
|
+
expect(subject).to eq expected_matrix_lines
|
|
50
|
+
end
|
|
51
|
+
end
|
|
27
52
|
end
|
|
28
53
|
end
|
|
29
54
|
end
|
|
@@ -221,7 +221,12 @@
|
|
|
221
221
|
},
|
|
222
222
|
"verificationResult": {
|
|
223
223
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
|
224
|
-
"success": true
|
|
224
|
+
"success": true,
|
|
225
|
+
"_links": {
|
|
226
|
+
"self": {
|
|
227
|
+
"href": "http://result"
|
|
228
|
+
}
|
|
229
|
+
}
|
|
225
230
|
},
|
|
226
231
|
"pact": {
|
|
227
232
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
|
@@ -271,7 +276,12 @@
|
|
|
271
276
|
},
|
|
272
277
|
"verificationResult": {
|
|
273
278
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
|
274
|
-
"success": true
|
|
279
|
+
"success": true,
|
|
280
|
+
"_links": {
|
|
281
|
+
"self": {
|
|
282
|
+
"href": "http://result"
|
|
283
|
+
}
|
|
284
|
+
}
|
|
275
285
|
},
|
|
276
286
|
"pact": {
|
|
277
287
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
|
@@ -321,7 +331,12 @@
|
|
|
321
331
|
},
|
|
322
332
|
"verificationResult": {
|
|
323
333
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
|
324
|
-
"success": true
|
|
334
|
+
"success": true,
|
|
335
|
+
"_links": {
|
|
336
|
+
"self": {
|
|
337
|
+
"href": "http://result"
|
|
338
|
+
}
|
|
339
|
+
}
|
|
325
340
|
},
|
|
326
341
|
"pact": {
|
|
327
342
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
|
@@ -418,7 +433,12 @@
|
|
|
418
433
|
},
|
|
419
434
|
"verificationResult": {
|
|
420
435
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
|
421
|
-
"success": true
|
|
436
|
+
"success": true,
|
|
437
|
+
"_links": {
|
|
438
|
+
"self": {
|
|
439
|
+
"href": "http://result"
|
|
440
|
+
}
|
|
441
|
+
}
|
|
422
442
|
},
|
|
423
443
|
"pact": {
|
|
424
444
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
|
@@ -439,7 +459,12 @@
|
|
|
439
459
|
},
|
|
440
460
|
"verificationResult": {
|
|
441
461
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
|
442
|
-
"success": true
|
|
462
|
+
"success": true,
|
|
463
|
+
"_links": {
|
|
464
|
+
"self": {
|
|
465
|
+
"href": "http://result"
|
|
466
|
+
}
|
|
467
|
+
}
|
|
443
468
|
},
|
|
444
469
|
"pact": {
|
|
445
470
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
|
@@ -492,7 +517,12 @@
|
|
|
492
517
|
},
|
|
493
518
|
"verificationResult": {
|
|
494
519
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
|
495
|
-
"success": true
|
|
520
|
+
"success": true,
|
|
521
|
+
"_links": {
|
|
522
|
+
"self": {
|
|
523
|
+
"href": "http://result"
|
|
524
|
+
}
|
|
525
|
+
}
|
|
496
526
|
},
|
|
497
527
|
"pact": {
|
|
498
528
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
|
@@ -542,7 +572,12 @@
|
|
|
542
572
|
},
|
|
543
573
|
"verificationResult": {
|
|
544
574
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
|
545
|
-
"success": true
|
|
575
|
+
"success": true,
|
|
576
|
+
"_links": {
|
|
577
|
+
"self": {
|
|
578
|
+
"href": "http://result"
|
|
579
|
+
}
|
|
580
|
+
}
|
|
546
581
|
},
|
|
547
582
|
"pact": {
|
|
548
583
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
|
@@ -592,7 +627,12 @@
|
|
|
592
627
|
},
|
|
593
628
|
"verificationResult": {
|
|
594
629
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
|
595
|
-
"success": true
|
|
630
|
+
"success": true,
|
|
631
|
+
"_links": {
|
|
632
|
+
"self": {
|
|
633
|
+
"href": "http://result"
|
|
634
|
+
}
|
|
635
|
+
}
|
|
596
636
|
},
|
|
597
637
|
"pact": {
|
|
598
638
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
data/spec/support/matrix.json
CHANGED
data/spec/support/matrix.txt
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
CONSUMER | C.VERSION | PROVIDER | P.VERSION | SUCCESS?
|
|
2
|
-
|
|
3
|
-
Foo | 4 | Bar | 5 | true
|
|
1
|
+
CONSUMER | C.VERSION | PROVIDER | P.VERSION | SUCCESS? | RESULT#
|
|
2
|
+
---------|-----------|----------|-----------|----------|--------
|
|
3
|
+
Foo | 4 | Bar | 5 | true | 1
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
CONSUMER | C.VERSION | PROVIDER | P.VERSION | SUCCESS?
|
|
2
|
-
|
|
3
|
-
??? | ??? | ??? | ??? | ???
|
|
1
|
+
CONSUMER | C.VERSION | PROVIDER | P.VERSION | SUCCESS? | RESULT#
|
|
2
|
+
---------|-----------|----------|-----------|----------|--------
|
|
3
|
+
??? | ??? | ??? | ??? | ??? |
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
CONSUMER | C.VERSION | PROVIDER | P.VERSION | SUCCESS? | RESULT#
|
|
2
|
+
---------|-----------|----------|-----------|----------|--------
|
|
3
|
+
Foo | 4 | Bar | 5 | true | 1
|
|
4
|
+
Foo | 4 | Bar | 5 | ??? |
|
|
5
|
+
Foo | 4 | Bar | 5 | false | 2
|
|
6
|
+
|
|
7
|
+
VERIFICATION RESULTS
|
|
8
|
+
--------------------
|
|
9
|
+
1. http://result (success)
|
|
10
|
+
2. http://result (failure)
|
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.35.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:
|
|
11
|
+
date: 2021-01-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: httparty
|
|
@@ -86,6 +86,20 @@ dependencies:
|
|
|
86
86
|
- - "~>"
|
|
87
87
|
- !ruby/object:Gem::Version
|
|
88
88
|
version: '13.0'
|
|
89
|
+
- !ruby/object:Gem::Dependency
|
|
90
|
+
name: dig_rb
|
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - "~>"
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '1.0'
|
|
96
|
+
type: :runtime
|
|
97
|
+
prerelease: false
|
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - "~>"
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '1.0'
|
|
89
103
|
- !ruby/object:Gem::Dependency
|
|
90
104
|
name: fakefs
|
|
91
105
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -166,10 +180,10 @@ extensions: []
|
|
|
166
180
|
extra_rdoc_files: []
|
|
167
181
|
files:
|
|
168
182
|
- ".github/workflows/release_gem.yml"
|
|
183
|
+
- ".github/workflows/test.yml"
|
|
169
184
|
- ".github/workflows/trigger_pact_docs_update.yml"
|
|
170
185
|
- ".gitignore"
|
|
171
186
|
- ".rspec"
|
|
172
|
-
- ".travis.yml"
|
|
173
187
|
- CHANGELOG.md
|
|
174
188
|
- Dockerfile
|
|
175
189
|
- Gemfile
|
|
@@ -291,6 +305,7 @@ files:
|
|
|
291
305
|
- spec/support/matrix.json
|
|
292
306
|
- spec/support/matrix.txt
|
|
293
307
|
- spec/support/matrix_error.txt
|
|
308
|
+
- spec/support/matrix_with_results.txt
|
|
294
309
|
- spec/support/pacticipant_get.json
|
|
295
310
|
- spec/support/pacticipants_list.json
|
|
296
311
|
- spec/support/pacts_latest_list.json
|
|
@@ -315,7 +330,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
315
330
|
- !ruby/object:Gem::Version
|
|
316
331
|
version: '0'
|
|
317
332
|
requirements: []
|
|
318
|
-
rubygems_version: 3.
|
|
333
|
+
rubygems_version: 3.2.6
|
|
319
334
|
signing_key:
|
|
320
335
|
specification_version: 4
|
|
321
336
|
summary: See description
|
|
@@ -370,6 +385,7 @@ test_files:
|
|
|
370
385
|
- spec/support/matrix.json
|
|
371
386
|
- spec/support/matrix.txt
|
|
372
387
|
- spec/support/matrix_error.txt
|
|
388
|
+
- spec/support/matrix_with_results.txt
|
|
373
389
|
- spec/support/pacticipant_get.json
|
|
374
390
|
- spec/support/pacticipants_list.json
|
|
375
391
|
- spec/support/pacts_latest_list.json
|
data/.travis.yml
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
language: ruby
|
|
2
|
-
rvm:
|
|
3
|
-
- 2.2.4
|
|
4
|
-
- 2.4.1
|
|
5
|
-
|
|
6
|
-
# before_install:
|
|
7
|
-
# - (git show-ref | grep $(git log --pretty=%h -1) | sed 's|.*/\(.*\)|\1|' | sort -u | grep -v HEAD) || true
|
|
8
|
-
# - (git show -s --pretty=%d HEAD) || true
|
|
9
|
-
# - (git for-each-ref --format='%(objectname) %(refname:short)' refs/heads | awk "/^$(git rev-parse HEAD)/ {print \$2}") || true
|
|
10
|
-
# - (git show -s --pretty=%D HEAD | tr -s ', ' '\n' | grep -v HEAD | head -n1) || true
|
|
11
|
-
# - (git name-rev --name-only HEAD) || true
|