pact 1.67.0 → 1.67.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/CHANGELOG.md +16 -0
- data/lib/pact/v2/native/logger.rb +1 -1
- data/lib/pact/v2/provider/base_verifier.rb +1 -1
- data/lib/pact/v2/provider/grpc_verifier.rb +1 -1
- data/lib/pact/v2/provider/http_verifier.rb +1 -1
- data/lib/pact/v2/provider/message_provider_servlet.rb +2 -2
- data/lib/pact/v2/provider/pact_broker_proxy_runner.rb +4 -1
- data/lib/pact/v2/provider/pact_config/base.rb +5 -3
- data/lib/pact/v2/provider/pact_config/mixed.rb +3 -2
- data/lib/pact/v2/provider/provider_server_runner.rb +4 -1
- data/lib/pact/v2/provider/provider_state_servlet.rb +2 -2
- data/lib/pact/version.rb +1 -1
- data/lib/pact.rb +6 -1
- data/pact.gemspec +3 -1
- metadata +1 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 03a92a7db6e157c7b573d5863fab36db4aca07645a8a411cdaeaf2d15e665297
|
|
4
|
+
data.tar.gz: 2e8f1291c9f75ab146b2a20246bdb0da510998ea205e4df8eec15373d57d86bb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: acbbdcfd0f50209d342264b0dbebcb4c227c253be2d208322c2d80c2355af11fb08db03a8b640ae0dae0dabdc6e4fe98e09a945e5546a89d9020e1620562fa30
|
|
7
|
+
data.tar.gz: b60cbfc2107c0b0570f428e192ca56f9ae2652029ec05c0e235c5cd0730099f36b3fae263a5fe054e90c5ca0e8110db9262605d6f006225e485598a5e51cfa6d
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
<a name="v1.67.2"></a>
|
|
2
|
+
### v1.67.2 (2025-10-22)
|
|
3
|
+
|
|
4
|
+
#### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **v2**
|
|
7
|
+
* allow configurable loggers in verifier ([9fad7fa](/../../commit/9fad7fa))
|
|
8
|
+
|
|
9
|
+
<a name="v1.67.1"></a>
|
|
10
|
+
### v1.67.1 (2025-10-22)
|
|
11
|
+
|
|
12
|
+
#### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* **deps**
|
|
15
|
+
* make pact-ffi optional in v1 releases for pact-ruby-standalone consumption ([e3cd0d6](/../../commit/e3cd0d6))
|
|
16
|
+
|
|
1
17
|
<a name="v1.67.0"></a>
|
|
2
18
|
### v1.67.0 (2025-10-16)
|
|
3
19
|
|
|
@@ -17,7 +17,7 @@ module Pact
|
|
|
17
17
|
|
|
18
18
|
def self.log_to_stdout(log_level)
|
|
19
19
|
raise "invalid log level for PactFfi::FfiLogLevelFilter" unless LOG_LEVELS.key?(log_level)
|
|
20
|
-
|
|
20
|
+
PactFfi::Logger.log_to_stdout(LOG_LEVELS[log_level]) unless log_level == :off
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
23
|
end
|
|
@@ -31,7 +31,7 @@ module Pact
|
|
|
31
31
|
raise ArgumentError, "pact_config must be a subclass of Pact::V2::Provider::PactConfig::Base" unless pact_config.is_a?(::Pact::V2::Provider::PactConfig::Base)
|
|
32
32
|
@pact_config = pact_config
|
|
33
33
|
@mixed_config = mixed_config
|
|
34
|
-
@logger = Logger.new($stdout)
|
|
34
|
+
@logger = @pact_config.logger || Logger.new($stdout)
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
def verify!
|
|
@@ -13,7 +13,7 @@ module Pact
|
|
|
13
13
|
super
|
|
14
14
|
|
|
15
15
|
raise ArgumentError, "pact_config must be an instance of Pact::V2::Provider::PactConfig::Grpc" unless pact_config.is_a?(::Pact::V2::Provider::PactConfig::Grpc)
|
|
16
|
-
@grpc_server = GrufServer.new(host: "127.0.0.1:#{@pact_config.grpc_port}", services: @pact_config.grpc_services)
|
|
16
|
+
@grpc_server = GrufServer.new(host: "127.0.0.1:#{@pact_config.grpc_port}", services: @pact_config.grpc_services, logger: @pact_config.logger)
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
private
|
|
@@ -13,7 +13,7 @@ module Pact
|
|
|
13
13
|
super
|
|
14
14
|
|
|
15
15
|
raise ArgumentError, "pact_config must be an instance of Pact::V2::Provider::PactConfig::Http" unless pact_config.is_a?(::Pact::V2::Provider::PactConfig::Http)
|
|
16
|
-
@http_server = HttpServer.new(host: "127.0.0.1", port: @pact_config.http_port, app: @pact_config.app)
|
|
16
|
+
@http_server = HttpServer.new(host: "127.0.0.1", port: @pact_config.http_port, app: @pact_config.app, logger: @pact_config.logger)
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
private
|
|
@@ -12,12 +12,12 @@ module Pact
|
|
|
12
12
|
CONTENT_TYPE_PROTO = "application/protobuf"
|
|
13
13
|
METADATA_HEADER = "pact-message-metadata"
|
|
14
14
|
|
|
15
|
-
def initialize(logger:
|
|
15
|
+
def initialize(logger: nil)
|
|
16
16
|
super(build_proc)
|
|
17
17
|
|
|
18
18
|
@message_handlers = {}
|
|
19
19
|
|
|
20
|
-
@logger = logger
|
|
20
|
+
@logger = logger || Logger.new($stdout)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def add_message_handler(name, &block)
|
|
@@ -35,7 +35,10 @@ module Pact
|
|
|
35
35
|
require 'rackup/handler/webrick'
|
|
36
36
|
handler = Class.new(Rackup::Handler::WEBrick)
|
|
37
37
|
end
|
|
38
|
-
@server = WEBrick::HTTPServer.new(
|
|
38
|
+
@server = WEBrick::HTTPServer.new(
|
|
39
|
+
{ BindAddress: @host, Port: @port, Logger: @logger, AccessLog: [] },
|
|
40
|
+
WEBrick::Config::HTTP
|
|
41
|
+
)
|
|
39
42
|
@server.mount("/", handler, PactBrokerProxy.new(
|
|
40
43
|
nil,
|
|
41
44
|
backend: @pact_broker_host,
|
|
@@ -8,13 +8,14 @@ module Pact
|
|
|
8
8
|
attr_reader :provider_name, :provider_version, :log_level, :provider_setup_server, :provider_setup_port, :pact_proxy_port,
|
|
9
9
|
:consumer_branch, :consumer_version, :consumer_name, :broker_url, :broker_username, :broker_password, :verify_only, :pact_dir,
|
|
10
10
|
:pact_uri, :provider_version_branch, :provider_version_tags, :consumer_version_selectors, :enable_pending, :include_wip_pacts_since,
|
|
11
|
-
:fail_if_no_pacts_found, :provider_build_uri, :broker_token, :consumer_version_tags, :publish_verification_results
|
|
11
|
+
:fail_if_no_pacts_found, :provider_build_uri, :broker_token, :consumer_version_tags, :publish_verification_results, :logger
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
def initialize(provider_name:, opts: {})
|
|
15
15
|
@provider_name = provider_name
|
|
16
16
|
@log_level = opts[:log_level] || :info
|
|
17
17
|
@pact_dir = opts[:pact_dir] || nil
|
|
18
|
+
@logger = opts[:logger] || nil
|
|
18
19
|
@provider_setup_port = opts[:provider_setup_port] || 9001
|
|
19
20
|
@pact_proxy_port = opts[:provider_setup_port] || 9002
|
|
20
21
|
@pact_uri = ENV.fetch("PACT_URL", nil) || opts.fetch(:pact_uri, nil)
|
|
@@ -37,14 +38,15 @@ module Pact
|
|
|
37
38
|
@broker_token = ENV.fetch("PACT_BROKER_TOKEN", nil) || opts.fetch(:broker_token, nil)
|
|
38
39
|
@verify_only = [ENV.fetch("PACT_CONSUMER_FULL_NAME", nil)].compact || opts.fetch(:verify_only, [])
|
|
39
40
|
|
|
40
|
-
@provider_setup_server = opts[:provider_setup_server] || ProviderServerRunner.new(port: @provider_setup_port)
|
|
41
|
+
@provider_setup_server = opts[:provider_setup_server] || ProviderServerRunner.new(port: @provider_setup_port, logger: @logger)
|
|
41
42
|
if @broker_url.present?
|
|
42
43
|
@pact_proxy_server = PactBrokerProxyRunner.new(
|
|
43
44
|
port: @pact_proxy_port,
|
|
44
45
|
pact_broker_host: @broker_url,
|
|
45
46
|
pact_broker_user: @broker_username,
|
|
46
47
|
pact_broker_password: @broker_password,
|
|
47
|
-
pact_broker_token: @broker_token
|
|
48
|
+
pact_broker_token: @broker_token,
|
|
49
|
+
logger: @logger
|
|
48
50
|
)
|
|
49
51
|
end
|
|
50
52
|
end
|
|
@@ -10,14 +10,15 @@ module Pact
|
|
|
10
10
|
|
|
11
11
|
def initialize(provider_name:, opts: {})
|
|
12
12
|
super
|
|
13
|
-
@provider_setup_server = ProviderServerRunner.new(port: @provider_setup_port)
|
|
13
|
+
@provider_setup_server = ProviderServerRunner.new(port: @provider_setup_port, logger: @logger)
|
|
14
14
|
if @broker_url.present?
|
|
15
15
|
@pact_proxy_server = PactBrokerProxyRunner.new(
|
|
16
16
|
port: @pact_proxy_port,
|
|
17
17
|
pact_broker_host: @broker_url,
|
|
18
18
|
pact_broker_user: @broker_username,
|
|
19
19
|
pact_broker_password: @broker_password,
|
|
20
|
-
pact_broker_token: @broker_token
|
|
20
|
+
pact_broker_token: @broker_token,
|
|
21
|
+
logger: @logger
|
|
21
22
|
)
|
|
22
23
|
end
|
|
23
24
|
@http_config = opts[:http] ? Http.new(provider_name: provider_name, opts: opts[:http].merge(provider_setup_server: provider_setup_server, pact_proxy_server: @pact_proxy_server)) : nil
|
|
@@ -34,7 +34,10 @@ module Pact
|
|
|
34
34
|
def start
|
|
35
35
|
raise "server already running, stop server before starting new one" if @thread
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
@server = WEBrick::HTTPServer.new(
|
|
38
|
+
{ BindAddress: @host, Port: @port, Logger: @logger, AccessLog: [] },
|
|
39
|
+
WEBrick::Config::HTTP
|
|
40
|
+
)
|
|
38
41
|
@server.mount(SETUP_PROVIDER_STATE_PATH, @state_servlet)
|
|
39
42
|
@server.mount(VERIFY_MESSAGE_PATH, @message_servlet)
|
|
40
43
|
|
|
@@ -8,10 +8,10 @@ module Pact
|
|
|
8
8
|
class ProviderStateServlet < WEBrick::HTTPServlet::ProcHandler
|
|
9
9
|
attr_reader :logger
|
|
10
10
|
|
|
11
|
-
def initialize(logger:
|
|
11
|
+
def initialize(logger: nil)
|
|
12
12
|
super(build_proc)
|
|
13
13
|
|
|
14
|
-
@logger = logger
|
|
14
|
+
@logger = logger || Logger.new($stdout)
|
|
15
15
|
|
|
16
16
|
@provider_setup_states = {}
|
|
17
17
|
@provider_teardown_states = {}
|
data/lib/pact/version.rb
CHANGED
data/lib/pact.rb
CHANGED
|
@@ -4,4 +4,9 @@ require 'pact/configuration'
|
|
|
4
4
|
require 'pact/consumer'
|
|
5
5
|
require 'pact/provider'
|
|
6
6
|
require 'pact/consumer_contract'
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
begin
|
|
9
|
+
require 'pact/v2'
|
|
10
|
+
rescue LoadError => e
|
|
11
|
+
warn "Warning: Could not load 'pact/v2': #{e.message} \nPlease ensure that the 'pact-ffi' gem is included in your Gemfile for pact/v2 support."
|
|
12
|
+
end
|
data/pact.gemspec
CHANGED
|
@@ -39,7 +39,9 @@ Gem::Specification.new do |gem|
|
|
|
39
39
|
# Core dependencies (code loading)
|
|
40
40
|
gem.add_dependency "zeitwerk", "~> 2.3"
|
|
41
41
|
# For Pact support via Pact Rust Core
|
|
42
|
-
|
|
42
|
+
# moved to optional group in Gemfile, to allow opt in for users who want Pact v2
|
|
43
|
+
# and to support pact-ruby-standalone which cannot package the ffi for all supported platforms
|
|
44
|
+
# gem.add_dependency "pact-ffi", "~> 0.4.28"
|
|
43
45
|
# For Provider Side Verification
|
|
44
46
|
gem.add_dependency "rack"
|
|
45
47
|
gem.add_dependency "rack-proxy"
|
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.67.
|
|
4
|
+
version: 1.67.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- James Fraser
|
|
@@ -89,20 +89,6 @@ dependencies:
|
|
|
89
89
|
- - "~>"
|
|
90
90
|
- !ruby/object:Gem::Version
|
|
91
91
|
version: '2.3'
|
|
92
|
-
- !ruby/object:Gem::Dependency
|
|
93
|
-
name: pact-ffi
|
|
94
|
-
requirement: !ruby/object:Gem::Requirement
|
|
95
|
-
requirements:
|
|
96
|
-
- - "~>"
|
|
97
|
-
- !ruby/object:Gem::Version
|
|
98
|
-
version: 0.4.28
|
|
99
|
-
type: :runtime
|
|
100
|
-
prerelease: false
|
|
101
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
102
|
-
requirements:
|
|
103
|
-
- - "~>"
|
|
104
|
-
- !ruby/object:Gem::Version
|
|
105
|
-
version: 0.4.28
|
|
106
92
|
- !ruby/object:Gem::Dependency
|
|
107
93
|
name: rack
|
|
108
94
|
requirement: !ruby/object:Gem::Requirement
|