pact_broker-client 1.0.1 → 1.0.2
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/.travis.yml +1 -1
- data/CHANGELOG.md +4 -0
- data/RELEASING.md +1 -1
- data/lib/pact_broker/client/pacts.rb +5 -1
- data/lib/pact_broker/client/publish_pacts.rb +9 -2
- data/lib/pact_broker/client/version.rb +1 -1
- data/pact-broker-client.gemspec +1 -0
- data/spec/lib/pact_broker/client/publish_pacts_spec.rb +2 -1
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe44eee4fddd30cc209190d385f8bd061122b12a
|
4
|
+
data.tar.gz: 8945b98fb77abff9a8206d47090b0ffffc3cce40
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0ba87bc2c951a221fd89f495ab7170fb0a36a3b0d7dd154dccc3a39e183e1d60cfe1c63b63137df714ea8211784cbcfef7cc35183ab3ef7a2c5c507b29952aa
|
7
|
+
data.tar.gz: 206bca1997a40ec5f107335430047117fb03c9211d32222b55da329096477935748fc8d30f03803f6f97631f7f19392527d8c7d9a4656fbc42bd9f909d29b645
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,10 @@ Do this to generate your change history
|
|
2
2
|
|
3
3
|
$ git log --pretty=format:' * %h - %s (%an, %ad)' vX.Y.Z..HEAD
|
4
4
|
|
5
|
+
#### 1.0.2 (2016-06-20)
|
6
|
+
|
7
|
+
* 4637978 - Warn on overwritting (Taiki Ono, Mon Jun 6 14:50:37 2016 +0900)
|
8
|
+
|
5
9
|
#### 1.0.1 (2016-04-29)
|
6
10
|
|
7
11
|
* 72c099b - Add release instructions (Sergei Matheson, Fri Apr 29 11:54:01 2016 +1000)
|
data/RELEASING.md
CHANGED
@@ -21,6 +21,10 @@ module PactBroker
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
+
def version_published?(args)
|
25
|
+
!get(consumer: args.fetch(:consumer), provider: args.fetch(:provider), consumer_version: args.fetch(:consumer_version)).nil?
|
26
|
+
end
|
27
|
+
|
24
28
|
def get options
|
25
29
|
url = get_consumer_contract_url(options)
|
26
30
|
response = self.class.get(url, headers: default_get_headers)
|
@@ -103,4 +107,4 @@ module PactBroker
|
|
103
107
|
end
|
104
108
|
end
|
105
109
|
end
|
106
|
-
end
|
110
|
+
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'term/ansicolor'
|
1
2
|
require 'pact_broker/client'
|
2
3
|
require 'pact_broker/client/retry'
|
3
4
|
|
@@ -36,9 +37,15 @@ module PactBroker
|
|
36
37
|
end
|
37
38
|
end
|
38
39
|
|
39
|
-
def publish_pact_contents
|
40
|
+
def publish_pact_contents(pact_file_contents)
|
40
41
|
Retry.until_true do
|
41
|
-
|
42
|
+
contract = ::Pact::ConsumerContract.from_json(pact_file_contents)
|
43
|
+
pacts = pact_broker_client.pacticipants.versions.pacts
|
44
|
+
if pacts.version_published?(consumer: contract.consumer.name, provider: contract.provider.name, consumer_version: consumer_version)
|
45
|
+
$stdout.puts ::Term::ANSIColor.yellow("The given version of pact is already published. Will Overwrite...")
|
46
|
+
end
|
47
|
+
|
48
|
+
latest_pact_url = pacts.publish(pact_json: pact_file_contents, consumer_version: consumer_version)
|
42
49
|
$stdout.puts "The latest version of this pact can be accessed at the following URL (use this to configure the provider verification):\n#{latest_pact_url}\n\n"
|
43
50
|
true
|
44
51
|
end
|
data/pact-broker-client.gemspec
CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |gem|
|
|
22
22
|
gem.add_runtime_dependency 'pact'
|
23
23
|
gem.add_runtime_dependency 'httparty'
|
24
24
|
gem.add_runtime_dependency 'json' #Not locking down a version because buncher gem requires 1.6, while other projects use 1.7.
|
25
|
+
gem.add_runtime_dependency 'term-ansicolor'
|
25
26
|
|
26
27
|
#gem.add_development_dependency 'geminabox-client'
|
27
28
|
gem.add_development_dependency 'rake', '~> 10.0.3'
|
@@ -22,7 +22,7 @@ module PactBroker
|
|
22
22
|
let(:pact_broker_client) { double("PactBroker::Client")}
|
23
23
|
let(:pact_files) { ['spec/pacts/consumer-provider.json']}
|
24
24
|
let(:consumer_version) { "1.2.3" }
|
25
|
-
let(:pact_hash) { {consumer: {name: 'Consumer'}, provider: {name: 'Provider'} } }
|
25
|
+
let(:pact_hash) { {consumer: {name: 'Consumer'}, provider: {name: 'Provider'}, interactions: [] } }
|
26
26
|
let(:pacts_client) { instance_double("PactBroker::ClientSupport::Pacts")}
|
27
27
|
let(:pact_broker_base_url) { 'http://some-host'}
|
28
28
|
let(:pact_broker_client_options) do
|
@@ -40,6 +40,7 @@ module PactBroker
|
|
40
40
|
FileUtils.mkdir_p "spec/pacts"
|
41
41
|
File.open("spec/pacts/consumer-provider.json", "w") { |file| file << pact_hash.to_json }
|
42
42
|
allow(pact_broker_client).to receive_message_chain(:pacticipants, :versions, :pacts).and_return(pacts_client)
|
43
|
+
allow(pacts_client).to receive(:version_published?).and_return(false)
|
43
44
|
end
|
44
45
|
|
45
46
|
describe "call" do
|
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.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bethany Skurrie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pact
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: term-ansicolor
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rake
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -179,7 +193,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
193
|
version: '0'
|
180
194
|
requirements: []
|
181
195
|
rubyforge_project:
|
182
|
-
rubygems_version: 2.
|
196
|
+
rubygems_version: 2.5.1
|
183
197
|
signing_key:
|
184
198
|
specification_version: 4
|
185
199
|
summary: See description
|