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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0ca51a8c01825eeaadd3f7113105f8ccef5f6a5d
4
- data.tar.gz: 22f5022a7b7e03f7a80c58ef994ffb95dec6545a
3
+ metadata.gz: fe44eee4fddd30cc209190d385f8bd061122b12a
4
+ data.tar.gz: 8945b98fb77abff9a8206d47090b0ffffc3cce40
5
5
  SHA512:
6
- metadata.gz: 6f5269cbcb24c78f9033c79efd745f0edb2fd18afc17336f4c013dbb59f6f07c5c9f9ad7bb217b116b052b6584c0819de7293a38d22f3867e9814b0c416b06ce
7
- data.tar.gz: b0d1ff3d2bf4c4fdaa72c37545e01ffc76f8c75ce2a7fe25a4412f6b5b14fd5267e206170db19f706c155add4b3cc299d16126993b1d4cdf32f81a9491cacdfc
6
+ metadata.gz: f0ba87bc2c951a221fd89f495ab7170fb0a36a3b0d7dd154dccc3a39e183e1d60cfe1c63b63137df714ea8211784cbcfef7cc35183ab3ef7a2c5c507b29952aa
7
+ data.tar.gz: 206bca1997a40ec5f107335430047117fb03c9211d32222b55da329096477935748fc8d30f03803f6f97631f7f19392527d8c7d9a4656fbc42bd9f909d29b645
data/.travis.yml CHANGED
@@ -4,5 +4,5 @@ rvm:
4
4
  - 2.0.0
5
5
  - 2.1.8
6
6
  - 2.2.4
7
- - 2.3.0
7
+ - 2.3.1
8
8
  - jruby-9.0.5.0
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
@@ -1,6 +1,6 @@
1
1
  # Releasing
2
2
 
3
- 1. Increment the version in `lib/pact/support/version.rb`
3
+ 1. Increment the version in `lib/pact_broker/client/version.rb`
4
4
  2. Update the `CHANGELOG.md` using:
5
5
 
6
6
  $ git log --pretty=format:' * %h - %s (%an, %ad)' vX.Y.Z..HEAD
@@ -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 pact_file_contents
40
+ def publish_pact_contents(pact_file_contents)
40
41
  Retry.until_true do
41
- latest_pact_url = pact_broker_client.pacticipants.versions.pacts.publish(pact_json: pact_file_contents, consumer_version: consumer_version)
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
@@ -1,5 +1,5 @@
1
1
  module PactBroker
2
2
  module Client
3
- VERSION = '1.0.1'
3
+ VERSION = '1.0.2'
4
4
  end
5
5
  end
@@ -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.1
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-04-29 00:00:00.000000000 Z
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.4.5
196
+ rubygems_version: 2.5.1
183
197
  signing_key:
184
198
  specification_version: 4
185
199
  summary: See description