pact 1.59.0 → 1.63.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: af00495e49852d068acbf8b6506801223c8f0760abfd757fcb73d49f06781060
4
- data.tar.gz: cc0598bbde870c213eddcc20bcea43bfc47db77a5fc0faf008239b7a79ef6c5f
3
+ metadata.gz: 3bbef2d45df174d528bf23ecd3c5b380196789c842d49b32dd7c49478aca0942
4
+ data.tar.gz: ef0bdd2ea78d03ab7db7eec95c5b5e293495ce5aab33d614daca1ffe4215229b
5
5
  SHA512:
6
- metadata.gz: 89598a20ef196beff002e418f4aa903b9975c75774ce9c8aa2b7bb4ea978a1d9668bfb83e49325d5c88fbe39c43ed15af880ae7e0e757f9fb44112577f401716
7
- data.tar.gz: 6de032e0069da9cb7705e9fb02db2383145449e38865f2367eb68cbea68daa7887ae410ee7bab015ceb292272ab8696d5488bc4a0c310a66127d627fec70dd24
6
+ metadata.gz: 30e6ab38f2b4475474af538a149ba504462a36438f9b2cd2a4ccf148c2081ee92c973b3bb0d61d07edf19389869e631b6bc7011d4a758b54f752baa341eec715
7
+ data.tar.gz: abc1767938dcc4e417b3d76798c742f7e4bccbd850cd19cd3034d9ad9e28502c063c5b3272ac75cfd98c008dd5e3786e7a8708fb3f8b3332bb933c6a6b8c1acb
data/CHANGELOG.md CHANGED
@@ -1,3 +1,42 @@
1
+ <a name="v1.63.0"></a>
2
+ ### v1.63.0 (2022-09-28)
3
+
4
+ #### Features
5
+
6
+ * relax rack-test dependency to allow version 2 (#270) ([a619deb](/../../commit/a619deb))
7
+ * only print metrics warning once per thread ([91da38f](/../../commit/91da38f))
8
+ * provide configuration for build url to be published in verification results (#252) ([ce1c9bc](/../../commit/ce1c9bc))
9
+
10
+ #### Bug Fixes
11
+
12
+ * example/animal-service/Gemfile to reduce vulnerabilities (#263) ([8f3b732](/../../commit/8f3b732))
13
+ * Fixup ruby warnings (#262) ([3640593](/../../commit/3640593))
14
+
15
+ <a name="v1.62.0"></a>
16
+ ### v1.62.0 (2022-02-21)
17
+
18
+ #### Features
19
+
20
+ * add telemetry (#256) ([4497ee9](/../../commit/4497ee9))
21
+
22
+ <a name="v1.61.0"></a>
23
+ ### v1.61.0 (2021-12-16)
24
+
25
+ #### Features
26
+
27
+ * support description of matching_branch and matching_tag consumer version selectors ([8e8bb22](/../../commit/8e8bb22))
28
+
29
+ #### Bug Fixes
30
+
31
+ * pass through includePendingStatus to the 'pacts for verification' API when it is false ([f0e37a4](/../../commit/f0e37a4))
32
+
33
+ <a name="v1.60.0"></a>
34
+ ### v1.60.0 (2021-10-01)
35
+
36
+ #### Features
37
+
38
+ * allow SSL verification to be disabled in the HAL client by setting the environment variable PACT_DISABLE_SSL_VERIFICATION=true ([ce07d32](/../../commit/ce07d32))
39
+
1
40
  <a name="v1.59.0"></a>
2
41
  ### v1.59.0 (2021-09-07)
3
42
 
@@ -2,6 +2,7 @@ require 'pact/retry'
2
2
  require 'pact/hal/authorization_header_redactor'
3
3
  require 'net/http'
4
4
  require 'rack'
5
+ require 'openssl'
5
6
 
6
7
  module Pact
7
8
  module Hal
@@ -48,10 +49,16 @@ module Pact
48
49
  def perform_request request, uri
49
50
  response = Retry.until_true do
50
51
  http = Net::HTTP.new(uri.host, uri.port, :ENV)
51
- http.set_debug_output(output_stream) if verbose || ENV['VERBOSE'] == 'true'
52
+ http.set_debug_output(output_stream) if verbose?
52
53
  http.use_ssl = (uri.scheme == 'https')
53
54
  http.ca_file = ENV['SSL_CERT_FILE'] if ENV['SSL_CERT_FILE'] && ENV['SSL_CERT_FILE'] != ''
54
55
  http.ca_path = ENV['SSL_CERT_DIR'] if ENV['SSL_CERT_DIR'] && ENV['SSL_CERT_DIR'] != ''
56
+ if disable_ssl_verification?
57
+ if verbose?
58
+ Pact.configuration.output_stream.puts("SSL verification is disabled")
59
+ end
60
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
61
+ end
55
62
  http.start do |http|
56
63
  http.request request
57
64
  end
@@ -63,6 +70,14 @@ module Pact
63
70
  AuthorizationHeaderRedactor.new(Pact.configuration.output_stream)
64
71
  end
65
72
 
73
+ def verbose?
74
+ verbose || ENV['VERBOSE'] == 'true'
75
+ end
76
+
77
+ def disable_ssl_verification?
78
+ ENV['PACT_DISABLE_SSL_VERIFICATION'] == 'true' || ENV['PACT_BROKER_DISABLE_SSL_VERIFICATION'] == 'true'
79
+ end
80
+
66
81
  class Response < SimpleDelegator
67
82
  def body
68
83
  bod = raw_body
@@ -0,0 +1,17 @@
1
+ module Pact
2
+ module HashRefinements
3
+ refine Hash do
4
+ def compact
5
+ h = {}
6
+ each do |key, value|
7
+ h[key] = value unless value == nil
8
+ end
9
+ h
10
+ end unless Hash.method_defined? :compact
11
+
12
+ def compact!
13
+ reject! {|_key, value| value == nil}
14
+ end unless Hash.method_defined? :compact!
15
+ end
16
+ end
17
+ end
@@ -5,10 +5,13 @@ require 'pact/errors'
5
5
  require 'pact/pact_broker/fetch_pacts'
6
6
  require 'pact/pact_broker/notices'
7
7
  require 'pact/pact_broker/pact_selection_description'
8
+ require "pact/hash_refinements"
8
9
 
9
10
  module Pact
10
11
  module PactBroker
11
12
  class FetchPactURIsForVerification
13
+ using Pact::HashRefinements
14
+
12
15
  include PactSelectionDescription
13
16
  attr_reader :provider, :consumer_version_selectors, :provider_version_branch, :provider_version_tags, :broker_base_url, :http_client_options, :http_client, :options
14
17
 
@@ -74,12 +77,12 @@ module Pact
74
77
 
75
78
  def query
76
79
  q = {}
77
- q["includePendingStatus"] = true if options[:include_pending_status]
80
+ q["includePendingStatus"] = options[:include_pending_status]
78
81
  q["consumerVersionSelectors"] = consumer_version_selectors if consumer_version_selectors.any?
79
82
  q["providerVersionTags"] = provider_version_tags if provider_version_tags.any?
80
- q["providerVersionBranch"] = provider_version_branch if provider_version_branch
81
- q["includeWipPactsSince"] = options[:include_wip_pacts_since] if options[:include_wip_pacts_since]
82
- q
83
+ q["providerVersionBranch"] = provider_version_branch
84
+ q["includeWipPactsSince"] = options[:include_wip_pacts_since]
85
+ q.compact
83
86
  end
84
87
 
85
88
  def extract_notices(pact)
@@ -39,6 +39,12 @@ module Pact
39
39
  elsif selector[:environment]
40
40
  desc = "currently in #{selector[:environment]}"
41
41
  desc = "#{selector[:consumer]} #{desc}" if selector[:consumer]
42
+ elsif selector[:matchingBranch]
43
+ desc = "matching current branch"
44
+ desc = "#{desc} for #{selector[:consumer]}" if selector[:consumer]
45
+ elsif selector[:matchingTag]
46
+ desc = "matching tag"
47
+ desc = "#{desc} for #{selector[:consumer]}" if selector[:consumer]
42
48
  else
43
49
  desc = selector.to_s
44
50
  end
@@ -46,7 +46,7 @@ module Pact
46
46
  end
47
47
 
48
48
  def honours_pacts_from_pact_broker &block
49
- create_pact_verification_from_broker &block
49
+ create_pact_verification_from_broker(&block)
50
50
  end
51
51
 
52
52
  def builder &block
@@ -4,14 +4,15 @@ module Pact
4
4
  class ServiceProviderConfig
5
5
 
6
6
  attr_accessor :application_version
7
- attr_reader :branch
7
+ attr_reader :branch, :build_url
8
8
 
9
- def initialize application_version, branch, tags, publish_verification_results, &app_block
9
+ def initialize application_version, branch, tags, publish_verification_results, build_url, &app_block
10
10
  @application_version = application_version
11
11
  @branch = branch
12
12
  @tags = [*tags]
13
13
  @publish_verification_results = publish_verification_results
14
14
  @app_block = app_block
15
+ @build_url = build_url
15
16
  end
16
17
 
17
18
  def app
@@ -15,7 +15,7 @@ module Pact
15
15
 
16
16
  extend Pact::DSL
17
17
 
18
- attr_accessor :name, :app_block, :application_version, :branch, :tags, :publish_verification_results
18
+ attr_accessor :name, :app_block, :application_version, :branch, :tags, :publish_verification_results, :build_url
19
19
 
20
20
  CONFIG_RU_APP = lambda {
21
21
  unless File.exist? Pact.configuration.config_ru_path
@@ -48,6 +48,10 @@ module Pact
48
48
  self.branch = branch
49
49
  end
50
50
 
51
+ def build_url build_url
52
+ self.build_url = build_url
53
+ end
54
+
51
55
  def publish_verification_results publish_verification_results
52
56
  self.publish_verification_results = publish_verification_results
53
57
  Pact::RSpec.with_rspec_2 do
@@ -60,7 +64,7 @@ module Pact
60
64
  end
61
65
 
62
66
  def honours_pacts_from_pact_broker &block
63
- create_pact_verification_from_broker &block
67
+ create_pact_verification_from_broker(&block)
64
68
  end
65
69
  end
66
70
 
@@ -89,7 +93,7 @@ module Pact
89
93
  end
90
94
 
91
95
  def create_service_provider
92
- Pact.configuration.provider = ServiceProviderConfig.new(application_version, branch, tags, publish_verification_results, &@app_block)
96
+ Pact.configuration.provider = ServiceProviderConfig.new(application_version, branch, tags, publish_verification_results, build_url, &@app_block)
93
97
  end
94
98
  end
95
99
  end
@@ -12,6 +12,7 @@ require 'pact/provider/rspec/pact_broker_formatter'
12
12
  require 'pact/provider/rspec/json_formatter'
13
13
  require 'pact/provider/rspec'
14
14
  require 'pact/provider/rspec/calculate_exit_code'
15
+ require 'pact/utils/metrics'
15
16
 
16
17
  module Pact
17
18
  module Provider
@@ -130,6 +131,8 @@ module Pact
130
131
  ignore_failures: options[:ignore_failures],
131
132
  request_customizer: options[:request_customizer]
132
133
  }
134
+ Pact::Utils::Metrics.report_metric("Pacts verified", "ProviderTest", "Completed")
135
+
133
136
  honour_pactfile pact_source, ordered_pact_json(pact_source.pact_json), spec_options
134
137
  end
135
138
  end
@@ -3,7 +3,7 @@ module Pact
3
3
  class PactURI
4
4
  attr_reader :uri, :options, :metadata
5
5
 
6
- def initialize (uri, options = nil, metadata = nil)
6
+ def initialize(uri, options = nil, metadata = nil)
7
7
  @uri = uri
8
8
  @options = options || {}
9
9
  @metadata = metadata || {} # make sure it's not nil if nil is passed in
@@ -12,11 +12,11 @@ module Pact
12
12
  end
13
13
 
14
14
  def set_up &block
15
- ProviderStates.base_provider_state.register.register_set_up &block
15
+ ProviderStates.base_provider_state.register.register_set_up(&block)
16
16
  end
17
17
 
18
18
  def tear_down &block
19
- ProviderStates.base_provider_state.register_tear_down &block
19
+ ProviderStates.base_provider_state.register_tear_down(&block)
20
20
  end
21
21
 
22
22
  def provider_states_for name, &block
@@ -60,7 +60,7 @@ module Pact
60
60
  end
61
61
 
62
62
  def self.namespaced_name name, options = {}
63
- fullname = options[:for] ? "#{options[:for]}.#{name}" : name
63
+ options[:for] ? "#{options[:for]}.#{name}" : name
64
64
  end
65
65
  end
66
66
 
@@ -81,11 +81,11 @@ module Pact
81
81
 
82
82
  dsl do
83
83
  def set_up &block
84
- self.register_set_up &block
84
+ self.register_set_up(&block)
85
85
  end
86
86
 
87
87
  def tear_down &block
88
- self.register_tear_down &block
88
+ self.register_tear_down(&block)
89
89
  end
90
90
 
91
91
  def no_op
@@ -14,7 +14,13 @@ module Pact
14
14
  end
15
15
 
16
16
  def call
17
- VerificationResult.new(publishable?, !any_failures?, Pact.configuration.provider.application_version, test_results_hash_for_pact_uri)
17
+ VerificationResult.new(
18
+ publishable?,
19
+ !any_failures?,
20
+ Pact.configuration.provider.application_version,
21
+ test_results_hash_for_pact_uri,
22
+ Pact.configuration.provider.build_url
23
+ )
18
24
  end
19
25
 
20
26
  private
@@ -6,11 +6,12 @@ module Pact
6
6
  class VerificationResult
7
7
  attr_reader :success, :provider_application_version, :test_results_hash
8
8
 
9
- def initialize publishable, success, provider_application_version, test_results_hash
9
+ def initialize publishable, success, provider_application_version, test_results_hash, build_url
10
10
  @publishable = publishable
11
11
  @success = success
12
12
  @provider_application_version = provider_application_version
13
13
  @test_results_hash = test_results_hash
14
+ @build_url = build_url
14
15
  end
15
16
 
16
17
  def publishable?
@@ -25,7 +26,8 @@ module Pact
25
26
  {
26
27
  success: success,
27
28
  providerApplicationVersion: provider_application_version,
28
- testResults: test_results_hash
29
+ testResults: test_results_hash,
30
+ buildUrl: @build_url
29
31
  }.to_json(options)
30
32
  end
31
33
 
@@ -0,0 +1,100 @@
1
+ require 'securerandom'
2
+ require 'digest'
3
+ require 'socket'
4
+ require 'pact/version'
5
+ require 'net/http'
6
+
7
+ module Pact
8
+ module Utils
9
+ class Metrics
10
+
11
+ def self.report_metric(event, category, action, value = 1)
12
+ do_once_per_thread(:pact_metrics_message_shown) do
13
+ if track_events?
14
+ Pact.configuration.output_stream.puts "pact WARN: Please note: we are tracking events anonymously to gather important usage statistics like Pact-Ruby version
15
+ and operating system. To disable tracking, set the 'PACT_DO_NOT_TRACK' environment
16
+ variable to 'true'."
17
+ end
18
+ end
19
+
20
+ in_thread do
21
+ begin
22
+ if track_events?
23
+ uri = URI('https://www.google-analytics.com/collect')
24
+ req = Net::HTTP::Post.new(uri)
25
+ req.set_form_data(create_tracking_event(event, category, action, value))
26
+
27
+ Net::HTTP.start(uri.hostname, uri.port, read_timeout:2, open_timeout:2, :use_ssl => true ) do |http|
28
+ http.request(req)
29
+ end
30
+ end
31
+ rescue StandardError => e
32
+ handle_error(e)
33
+ end
34
+ end
35
+ end
36
+
37
+ private
38
+
39
+ def self.handle_error e
40
+ if ENV['PACT_METRICS_DEBUG'] == 'true'
41
+ Pact.configuration.output_stream.puts("DEBUG: #{e.inspect}\n" + e.backtrace.join("\n"))
42
+ end
43
+ end
44
+
45
+ def self.in_thread
46
+ Thread.new do
47
+ yield
48
+ end
49
+ end
50
+
51
+ # not super safe to use the thread, but it's good enough for this usecase
52
+ def self.do_once_per_thread(key)
53
+ result = nil
54
+ if !Thread.current[key]
55
+ result = yield
56
+ end
57
+ Thread.current[key] = true
58
+ result
59
+ end
60
+
61
+ def self.create_tracking_event(event, category, action, value)
62
+ {
63
+ "v" => 1,
64
+ "t" => "event",
65
+ "tid" => "UA-117778936-1",
66
+ "cid" => calculate_cid,
67
+ "an" => "Pact Ruby",
68
+ "av" => Pact::VERSION,
69
+ "aid" => "pact-ruby",
70
+ "aip" => 1,
71
+ "ds" => ENV['PACT_EXECUTING_LANGUAGE'] ? "client" : "cli",
72
+ "cd2" => ENV['CI'] == "true" ? "CI" : "unknown",
73
+ "cd3" => RUBY_PLATFORM,
74
+ "cd6" => ENV['PACT_EXECUTING_LANGUAGE'] || "unknown",
75
+ "cd7" => ENV['PACT_EXECUTING_LANGUAGE_VERSION'],
76
+ "el" => event,
77
+ "ec" => category,
78
+ "ea" => action,
79
+ "ev" => value
80
+ }
81
+ end
82
+
83
+ def self.track_events?
84
+ ENV['PACT_DO_NOT_TRACK'] != 'true'
85
+ end
86
+
87
+ def self.calculate_cid
88
+ if RUBY_PLATFORM.include? "windows"
89
+ hostname = ENV['COMPUTERNAME']
90
+ else
91
+ hostname = ENV['HOSTNAME']
92
+ end
93
+ if !hostname
94
+ hostname = Socket.gethostname
95
+ end
96
+ Digest::MD5.hexdigest hostname || SecureRandom.urlsafe_base64(5)
97
+ end
98
+ end
99
+ end
100
+ end
data/lib/pact/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # Remember to bump pact-provider-proxy when this changes major version
2
2
  module Pact
3
- VERSION = "1.59.0"
3
+ VERSION = "1.63.0"
4
4
  end
data/pact.gemspec CHANGED
@@ -27,20 +27,20 @@ Gem::Specification.new do |gem|
27
27
  }
28
28
 
29
29
  gem.add_runtime_dependency 'rspec', '~> 3.0'
30
- gem.add_runtime_dependency 'rack-test', '>= 0.6.3', '< 2.0.0'
30
+ gem.add_runtime_dependency 'rack-test', '>= 0.6.3', '< 3.0.0'
31
31
  gem.add_runtime_dependency 'thor', '>= 0.20', '< 2.0'
32
32
  gem.add_runtime_dependency 'webrick', '~> 1.3'
33
33
  gem.add_runtime_dependency 'term-ansicolor', '~> 1.0'
34
34
 
35
- gem.add_runtime_dependency 'pact-support', '~> 1.15'
35
+ gem.add_runtime_dependency 'pact-support', '~> 1.16', '>= 1.16.9'
36
36
  gem.add_runtime_dependency 'pact-mock_service', '~> 3.0', '>= 3.3.1'
37
37
 
38
38
  gem.add_development_dependency 'rake', '~> 13.0'
39
39
  gem.add_development_dependency 'webmock', '~> 3.0'
40
40
  gem.add_development_dependency 'fakefs', '0.5' # 0.6.0 blows up
41
41
  gem.add_development_dependency 'hashie', '~> 2.0'
42
- gem.add_development_dependency 'activesupport', '~> 5.2'
43
- gem.add_development_dependency 'faraday', '~> 0.13'
42
+ gem.add_development_dependency 'faraday', '~>1.0', '<3.0'
43
+ gem.add_development_dependency 'faraday-multipart', '~> 1.0'
44
44
  gem.add_development_dependency 'conventional-changelog', '~> 1.3'
45
45
  gem.add_development_dependency 'bump', '~> 0.5'
46
46
  gem.add_development_dependency 'pact-message', '~> 0.8'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pact
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.59.0
4
+ version: 1.63.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Fraser
@@ -9,10 +9,10 @@ authors:
9
9
  - Brent Snook
10
10
  - Ronald Holshausen
11
11
  - Beth Skurrie
12
- autorequire:
12
+ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2021-09-07 00:00:00.000000000 Z
15
+ date: 2022-09-29 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rspec
@@ -37,7 +37,7 @@ dependencies:
37
37
  version: 0.6.3
38
38
  - - "<"
39
39
  - !ruby/object:Gem::Version
40
- version: 2.0.0
40
+ version: 3.0.0
41
41
  type: :runtime
42
42
  prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
@@ -47,7 +47,7 @@ dependencies:
47
47
  version: 0.6.3
48
48
  - - "<"
49
49
  - !ruby/object:Gem::Version
50
- version: 2.0.0
50
+ version: 3.0.0
51
51
  - !ruby/object:Gem::Dependency
52
52
  name: thor
53
53
  requirement: !ruby/object:Gem::Requirement
@@ -102,14 +102,20 @@ dependencies:
102
102
  requirements:
103
103
  - - "~>"
104
104
  - !ruby/object:Gem::Version
105
- version: '1.15'
105
+ version: '1.16'
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: 1.16.9
106
109
  type: :runtime
107
110
  prerelease: false
108
111
  version_requirements: !ruby/object:Gem::Requirement
109
112
  requirements:
110
113
  - - "~>"
111
114
  - !ruby/object:Gem::Version
112
- version: '1.15'
115
+ version: '1.16'
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: 1.16.9
113
119
  - !ruby/object:Gem::Dependency
114
120
  name: pact-mock_service
115
121
  requirement: !ruby/object:Gem::Requirement
@@ -187,33 +193,39 @@ dependencies:
187
193
  - !ruby/object:Gem::Version
188
194
  version: '2.0'
189
195
  - !ruby/object:Gem::Dependency
190
- name: activesupport
196
+ name: faraday
191
197
  requirement: !ruby/object:Gem::Requirement
192
198
  requirements:
193
199
  - - "~>"
194
200
  - !ruby/object:Gem::Version
195
- version: '5.2'
201
+ version: '1.0'
202
+ - - "<"
203
+ - !ruby/object:Gem::Version
204
+ version: '3.0'
196
205
  type: :development
197
206
  prerelease: false
198
207
  version_requirements: !ruby/object:Gem::Requirement
199
208
  requirements:
200
209
  - - "~>"
201
210
  - !ruby/object:Gem::Version
202
- version: '5.2'
211
+ version: '1.0'
212
+ - - "<"
213
+ - !ruby/object:Gem::Version
214
+ version: '3.0'
203
215
  - !ruby/object:Gem::Dependency
204
- name: faraday
216
+ name: faraday-multipart
205
217
  requirement: !ruby/object:Gem::Requirement
206
218
  requirements:
207
219
  - - "~>"
208
220
  - !ruby/object:Gem::Version
209
- version: '0.13'
221
+ version: '1.0'
210
222
  type: :development
211
223
  prerelease: false
212
224
  version_requirements: !ruby/object:Gem::Requirement
213
225
  requirements:
214
226
  - - "~>"
215
227
  - !ruby/object:Gem::Version
216
- version: '0.13'
228
+ version: '1.0'
217
229
  - !ruby/object:Gem::Dependency
218
230
  name: conventional-changelog
219
231
  requirement: !ruby/object:Gem::Requirement
@@ -321,6 +333,7 @@ files:
321
333
  - lib/pact/hal/http_client.rb
322
334
  - lib/pact/hal/link.rb
323
335
  - lib/pact/hal/non_json_entity.rb
336
+ - lib/pact/hash_refinements.rb
324
337
  - lib/pact/pact_broker.rb
325
338
  - lib/pact/pact_broker/fetch_pact_uris_for_verification.rb
326
339
  - lib/pact/pact_broker/fetch_pacts.rb
@@ -378,6 +391,7 @@ files:
378
391
  - lib/pact/tasks/verification_task.rb
379
392
  - lib/pact/templates/help.erb
380
393
  - lib/pact/templates/provider_state.erb
394
+ - lib/pact/utils/metrics.rb
381
395
  - lib/pact/utils/string.rb
382
396
  - lib/pact/version.rb
383
397
  - lib/tasks/pact.rake
@@ -390,7 +404,7 @@ metadata:
390
404
  source_code_uri: https://github.com/pact-foundation/pact-ruby
391
405
  bug_tracker_uri: https://github.com/pact-foundation/pact-ruby/issues
392
406
  documentation_uri: https://github.com/pact-foundation/pact-ruby/blob/master/README.md
393
- post_install_message:
407
+ post_install_message:
394
408
  rdoc_options: []
395
409
  require_paths:
396
410
  - lib
@@ -405,8 +419,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
405
419
  - !ruby/object:Gem::Version
406
420
  version: '0'
407
421
  requirements: []
408
- rubygems_version: 3.2.27
409
- signing_key:
422
+ rubygems_version: 3.3.22
423
+ signing_key:
410
424
  specification_version: 4
411
425
  summary: Enables consumer driven contract testing, providing a mock service and DSL
412
426
  for the consumer project, and interaction playback and verification for the service