pact-provider-verifier 1.26.0 → 1.27.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2353417f47f75fbb238b3401c5ddbfa5dc98766f83ac1e78105a246420549636
4
- data.tar.gz: abc6c780757ba1153318867cd8869883c6bbae1bee245a0504d3ed4b39708704
3
+ metadata.gz: 6aa619044ae521e7f472fcb86c62389dd908d4799a509bb3a1b7b688947960b2
4
+ data.tar.gz: beedd9e10ca307512db6306c6888c15075caa3878c6db7cb998d377421aef5e1
5
5
  SHA512:
6
- metadata.gz: b700edfe49387ab05780793f5fb9c515041633e6e345ee4bd30a8d4fbe0e9a64f1a0a55dd1c9daef12ad03fcd9d497c0eef4cabb16a7090d999bea6f996700fe
7
- data.tar.gz: 4ac919f6e3f8fa1e6fa15719b67c5cb6406c7de62e2b26cb67f828afdc872dbe1c75f695b1b43885ebb2b08a66f72672041b4740ef21e4fb5f1acc8d863d91a0
6
+ metadata.gz: 549f619ce02b6367a97a4e18534861ee13f3a3f9e3e3dea527d3f4e035d253061fe46e637ec6355ce19fae14e18389e70f51c90bb21d13253ffc926199a13429
7
+ data.tar.gz: fdd5bb10143752116f9a5446d2c96e258aacf30fc19684e90bbf431d68104c3c2d428ce9e9a21ac4ba5cb92a5720d721e4f7a39f47e282a1a6dbfd2a98837706
data/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ <a name="v1.27.1-1"></a>
2
+ ### v1.27.1-1 (2020-01-16)
3
+
4
+
5
+ #### Features
6
+
7
+ * update git command use to determine branch name ([3dae935](/../../commit/3dae935))
8
+
9
+
10
+ <a name="v1.27.0-1"></a>
11
+ ### v1.27.0-1 (2020-01-16)
12
+
13
+
14
+ #### Features
15
+
16
+ * **cli**
17
+ * add --tag-with-git-branch ([f652dd5](/../../commit/f652dd5))
18
+
19
+
1
20
  <a name="v1.26.0-1"></a>
2
21
  ### v1.26.0-1 (2020-01-11)
3
22
 
@@ -7,6 +7,7 @@ require 'pact/provider/rspec'
7
7
  require 'pact/message'
8
8
  require 'pact/cli/run_pact_verification'
9
9
  require 'pact/provider_verifier/aggregate_pact_configs'
10
+ require 'pact/provider_verifier/git'
10
11
  require 'rack/reverse_proxy'
11
12
  require 'faraday_middleware'
12
13
  require 'json'
@@ -17,14 +18,15 @@ module Pact
17
18
  include Pact::WaitUntilServerAvailable
18
19
 
19
20
  PROXY_PACT_HELPER = File.expand_path(File.join(File.dirname(__FILE__), "pact_helper.rb"))
21
+ EMPTY_ARRAY = [].freeze
20
22
  attr_reader :pact_urls, :options, :consumer_version_tags, :provider_version_tags, :consumer_version_selectors, :publish_verification_results
21
23
 
22
24
  def initialize pact_urls, options = {}
23
25
  @pact_urls = pact_urls
24
26
  @options = options
25
- @consumer_version_tags = options[:consumer_version_tag] || []
26
- @provider_version_tags = options[:provider_version_tag] || []
27
- @consumer_version_selectors = parse_consumer_version_selectors(options[:consumer_version_selector] || [])
27
+ @consumer_version_tags = options.consumer_version_tag || EMPTY_ARRAY
28
+ @provider_version_tags = merge_provider_version_tags(options)
29
+ @consumer_version_selectors = parse_consumer_version_selectors(options.consumer_version_selector || EMPTY_ARRAY)
28
30
  @publish_verification_results = options.publish_verification_results || ENV['PACT_BROKER_PUBLISH_VERIFICATION_RESULTS'] == 'true'
29
31
  end
30
32
 
@@ -215,6 +217,10 @@ module Pact
215
217
  consumer_version_selectors.collect{ | string | JSON.parse(string) }
216
218
  end
217
219
 
220
+ def merge_provider_version_tags(options)
221
+ (options.provider_version_tag || EMPTY_ARRAY) + (options.tag_with_git_branch ? [Git.branch] : EMPTY_ARRAY)
222
+ end
223
+
218
224
  def print_deprecation_note
219
225
  if options.provider_states_url
220
226
  $stderr.puts "WARN: The --provider-states-url option is deprecated and the URL endpoint can be removed from the application"
@@ -33,6 +33,7 @@ module Pact
33
33
  method_option :consumer_version_tag, type: :array, banner: "TAG", desc: "Retrieve the latest pacts with this consumer version tag. Used in conjunction with --provider. May be specified multiple times.", :required => false
34
34
  method_option :consumer_version_selector, type: :array, banner: "SELECTOR", desc: "JSON string specifying a selector that identifies which pacts to verify. May be specified multiple times. See below for further documentation.", :required => false
35
35
  method_option :provider_version_tag, type: :array, banner: "TAG", desc: "Tag to apply to the provider application version. May be specified multiple times.", :required => false
36
+ method_option :tag_with_git_branch, aliases: "-g", type: :boolean, default: false, required: false, desc: "Tag provider version with the name of the current git branch. Default: false"
36
37
  method_option :provider_app_version, aliases: "-a", desc: "Provider application version, required when publishing verification results", :required => false
37
38
  method_option :publish_verification_results, aliases: "-r", desc: "Publish verification results to the broker. This can also be enabled by setting the environment variable PACT_BROKER_PUBLISH_VERIFICATION_RESULTS=true", required: false, type: :boolean, default: false
38
39
  method_option :enable_pending, desc: "Allow pacts which are in pending state to be verified without causing the overall task to fail. For more information, see https://pact.io/pending", required: false, type: :boolean, default: false
@@ -0,0 +1,5 @@
1
+ module Pact
2
+ module ProviderVerifier
3
+ class Error < StandardError; end
4
+ end
5
+ end
@@ -0,0 +1,65 @@
1
+ require 'pact/provider_verifier/error'
2
+
3
+ # Keep in sync with pact_broker-client/lib/pact_broker/client/git.rb
4
+
5
+ module Pact
6
+ module ProviderVerifier
7
+ module Git
8
+ COMMAND = 'git name-rev --name-only HEAD'.freeze
9
+ BRANCH_ENV_VAR_NAMES = %w{BUILDKITE_BRANCH CIRCLE_BRANCH TRAVIS_BRANCH GIT_BRANCH GIT_LOCAL_BRANCH APPVEYOR_REPO_BRANCH CI_COMMIT_REF_NAME}.freeze
10
+
11
+ def self.branch
12
+ find_branch_from_env_vars || branch_from_git_command
13
+ end
14
+
15
+ # private
16
+
17
+ def self.find_branch_from_env_vars
18
+ BRANCH_ENV_VAR_NAMES.collect { |env_var_name| branch_from_env_var(env_var_name) }.compact.first
19
+ end
20
+
21
+ def self.branch_from_env_var(env_var_name)
22
+ val = ENV[env_var_name]
23
+ if val && val.strip.size > 0
24
+ val
25
+ else
26
+ nil
27
+ end
28
+ end
29
+
30
+ def self.branch_from_git_command
31
+ branch_names = nil
32
+ begin
33
+ branch_names = execute_git_command
34
+ .split("\n")
35
+ .collect(&:strip)
36
+ .reject(&:empty?)
37
+ .collect(&:split)
38
+ .collect(&:first)
39
+ .collect{ |line| line.gsub(/^origin\//, '') }
40
+ .reject{ |line| line == "HEAD" }
41
+
42
+ rescue StandardError => e
43
+ raise Pact::ProviderVerifier::Error, "Could not determine current git branch using command `#{COMMAND}`. #{e.class} #{e.message}"
44
+ end
45
+
46
+ validate_branch_names(branch_names)
47
+ branch_names[0]
48
+ end
49
+
50
+ def self.validate_branch_names(branch_names)
51
+ if branch_names.size == 0
52
+ raise Pact::ProviderVerifier::Error, "Command `#{COMMAND}` didn't return anything that could be identified as the current branch."
53
+ end
54
+
55
+ if branch_names.size > 1
56
+ raise Pact::ProviderVerifier::Error, "Command `#{COMMAND}` returned multiple branches: #{branch_names.join(", ")}. You will need to get the branch name another way."
57
+ end
58
+ end
59
+
60
+ def self.execute_git_command
61
+ `#{COMMAND}`
62
+ end
63
+ end
64
+ end
65
+ end
@@ -1,5 +1,5 @@
1
1
  module Pact
2
2
  module ProviderVerifier
3
- VERSION = "1.26.0"
3
+ VERSION = "1.27.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pact-provider-verifier
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.26.0
4
+ version: 1.27.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Fellows
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-01-11 00:00:00.000000000 Z
12
+ date: 2020-01-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -298,6 +298,8 @@ files:
298
298
  - lib/pact/provider_verifier/cli/custom_thor.rb
299
299
  - lib/pact/provider_verifier/cli/verify.rb
300
300
  - lib/pact/provider_verifier/custom_middleware.rb
301
+ - lib/pact/provider_verifier/error.rb
302
+ - lib/pact/provider_verifier/git.rb
301
303
  - lib/pact/provider_verifier/pact_helper.rb
302
304
  - lib/pact/provider_verifier/provider_states/add_provider_states_header.rb
303
305
  - lib/pact/provider_verifier/provider_states/remove_provider_states_header_middleware.rb