pact 1.60.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 +4 -4
- data/CHANGELOG.md +32 -0
- data/lib/pact/hash_refinements.rb +17 -0
- data/lib/pact/pact_broker/fetch_pact_uris_for_verification.rb +7 -4
- data/lib/pact/pact_broker/pact_selection_description.rb +6 -0
- data/lib/pact/provider/configuration/message_provider_dsl.rb +1 -1
- data/lib/pact/provider/configuration/service_provider_config.rb +3 -2
- data/lib/pact/provider/configuration/service_provider_dsl.rb +7 -3
- data/lib/pact/provider/pact_spec_runner.rb +3 -0
- data/lib/pact/provider/pact_uri.rb +1 -1
- data/lib/pact/provider/state/provider_state.rb +5 -5
- data/lib/pact/provider/verification_results/create.rb +7 -1
- data/lib/pact/provider/verification_results/verification_result.rb +4 -2
- data/lib/pact/utils/metrics.rb +100 -0
- data/lib/pact/version.rb +1 -1
- data/pact.gemspec +3 -3
- metadata +22 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3bbef2d45df174d528bf23ecd3c5b380196789c842d49b32dd7c49478aca0942
|
|
4
|
+
data.tar.gz: ef0bdd2ea78d03ab7db7eec95c5b5e293495ce5aab33d614daca1ffe4215229b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 30e6ab38f2b4475474af538a149ba504462a36438f9b2cd2a4ccf148c2081ee92c973b3bb0d61d07edf19389869e631b6bc7011d4a758b54f752baa341eec715
|
|
7
|
+
data.tar.gz: abc1767938dcc4e417b3d76798c742f7e4bccbd850cd19cd3034d9ad9e28502c063c5b3272ac75cfd98c008dd5e3786e7a8708fb3f8b3332bb933c6a6b8c1acb
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,35 @@
|
|
|
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
|
+
|
|
1
33
|
<a name="v1.60.0"></a>
|
|
2
34
|
### v1.60.0 (2021-10-01)
|
|
3
35
|
|
|
@@ -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"] =
|
|
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
|
|
81
|
-
q["includeWipPactsSince"] = 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
|
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
84
|
+
self.register_set_up(&block)
|
|
85
85
|
end
|
|
86
86
|
|
|
87
87
|
def tear_down &block
|
|
88
|
-
self.register_tear_down
|
|
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(
|
|
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
data/pact.gemspec
CHANGED
|
@@ -27,7 +27,7 @@ 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', '<
|
|
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'
|
|
@@ -39,8 +39,8 @@ Gem::Specification.new do |gem|
|
|
|
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 '
|
|
43
|
-
gem.add_development_dependency 'faraday', '~> 0
|
|
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.
|
|
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:
|
|
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:
|
|
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:
|
|
50
|
+
version: 3.0.0
|
|
51
51
|
- !ruby/object:Gem::Dependency
|
|
52
52
|
name: thor
|
|
53
53
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -193,33 +193,39 @@ dependencies:
|
|
|
193
193
|
- !ruby/object:Gem::Version
|
|
194
194
|
version: '2.0'
|
|
195
195
|
- !ruby/object:Gem::Dependency
|
|
196
|
-
name:
|
|
196
|
+
name: faraday
|
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
|
198
198
|
requirements:
|
|
199
199
|
- - "~>"
|
|
200
200
|
- !ruby/object:Gem::Version
|
|
201
|
-
version: '
|
|
201
|
+
version: '1.0'
|
|
202
|
+
- - "<"
|
|
203
|
+
- !ruby/object:Gem::Version
|
|
204
|
+
version: '3.0'
|
|
202
205
|
type: :development
|
|
203
206
|
prerelease: false
|
|
204
207
|
version_requirements: !ruby/object:Gem::Requirement
|
|
205
208
|
requirements:
|
|
206
209
|
- - "~>"
|
|
207
210
|
- !ruby/object:Gem::Version
|
|
208
|
-
version: '
|
|
211
|
+
version: '1.0'
|
|
212
|
+
- - "<"
|
|
213
|
+
- !ruby/object:Gem::Version
|
|
214
|
+
version: '3.0'
|
|
209
215
|
- !ruby/object:Gem::Dependency
|
|
210
|
-
name: faraday
|
|
216
|
+
name: faraday-multipart
|
|
211
217
|
requirement: !ruby/object:Gem::Requirement
|
|
212
218
|
requirements:
|
|
213
219
|
- - "~>"
|
|
214
220
|
- !ruby/object:Gem::Version
|
|
215
|
-
version: '0
|
|
221
|
+
version: '1.0'
|
|
216
222
|
type: :development
|
|
217
223
|
prerelease: false
|
|
218
224
|
version_requirements: !ruby/object:Gem::Requirement
|
|
219
225
|
requirements:
|
|
220
226
|
- - "~>"
|
|
221
227
|
- !ruby/object:Gem::Version
|
|
222
|
-
version: '0
|
|
228
|
+
version: '1.0'
|
|
223
229
|
- !ruby/object:Gem::Dependency
|
|
224
230
|
name: conventional-changelog
|
|
225
231
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -327,6 +333,7 @@ files:
|
|
|
327
333
|
- lib/pact/hal/http_client.rb
|
|
328
334
|
- lib/pact/hal/link.rb
|
|
329
335
|
- lib/pact/hal/non_json_entity.rb
|
|
336
|
+
- lib/pact/hash_refinements.rb
|
|
330
337
|
- lib/pact/pact_broker.rb
|
|
331
338
|
- lib/pact/pact_broker/fetch_pact_uris_for_verification.rb
|
|
332
339
|
- lib/pact/pact_broker/fetch_pacts.rb
|
|
@@ -384,6 +391,7 @@ files:
|
|
|
384
391
|
- lib/pact/tasks/verification_task.rb
|
|
385
392
|
- lib/pact/templates/help.erb
|
|
386
393
|
- lib/pact/templates/provider_state.erb
|
|
394
|
+
- lib/pact/utils/metrics.rb
|
|
387
395
|
- lib/pact/utils/string.rb
|
|
388
396
|
- lib/pact/version.rb
|
|
389
397
|
- lib/tasks/pact.rake
|
|
@@ -396,7 +404,7 @@ metadata:
|
|
|
396
404
|
source_code_uri: https://github.com/pact-foundation/pact-ruby
|
|
397
405
|
bug_tracker_uri: https://github.com/pact-foundation/pact-ruby/issues
|
|
398
406
|
documentation_uri: https://github.com/pact-foundation/pact-ruby/blob/master/README.md
|
|
399
|
-
post_install_message:
|
|
407
|
+
post_install_message:
|
|
400
408
|
rdoc_options: []
|
|
401
409
|
require_paths:
|
|
402
410
|
- lib
|
|
@@ -411,8 +419,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
411
419
|
- !ruby/object:Gem::Version
|
|
412
420
|
version: '0'
|
|
413
421
|
requirements: []
|
|
414
|
-
rubygems_version: 3.
|
|
415
|
-
signing_key:
|
|
422
|
+
rubygems_version: 3.3.22
|
|
423
|
+
signing_key:
|
|
416
424
|
specification_version: 4
|
|
417
425
|
summary: Enables consumer driven contract testing, providing a mock service and DSL
|
|
418
426
|
for the consumer project, and interaction playback and verification for the service
|