pact 1.61.0 → 1.62.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 +7 -0
- data/lib/pact/provider/pact_spec_runner.rb +3 -0
- data/lib/pact/utils/metrics.rb +85 -0
- data/lib/pact/version.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b4004f1a6eed7b4222d8f6f4bd72eb568c75fd198ab77ee663b6aab918ea907
|
4
|
+
data.tar.gz: f6cc541f1416275a0cea5b0819d20f58e6b27d8ca10e8f708b0d44d382b88461
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 31ce201c07203749e19cb6ca6d1088ef69f1119686119519ab5e15faddda38f80f2846b782efb2e7cb4c3e26bb9df529e45fcc1350df2be63819fbfde50c54e5
|
7
|
+
data.tar.gz: 3fa2538f3f8472759eafcd12b8ef829141f343e5cdab8c83ba27bd4f4f1ca0eee1e960fb2467333b17da30a29c8bc849427178c5dc7566e2c94d948cd109a96e
|
data/CHANGELOG.md
CHANGED
@@ -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
|
@@ -0,0 +1,85 @@
|
|
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
|
+
in_thread do
|
13
|
+
begin
|
14
|
+
if track_events?
|
15
|
+
Pact.configuration.output_stream.puts "WARN: Please note: we are tracking events anonymously to gather important usage statistics like Pact-Ruby version
|
16
|
+
and operating system. To disable tracking, set the 'PACT_DO_NOT_TRACK' environment
|
17
|
+
variable to 'true'."
|
18
|
+
|
19
|
+
uri = URI('https://www.google-analytics.com/collect')
|
20
|
+
req = Net::HTTP::Post.new(uri)
|
21
|
+
req.set_form_data(create_tracking_event(event, category, action, value))
|
22
|
+
|
23
|
+
Net::HTTP.start(uri.hostname, uri.port, read_timeout:2, open_timeout:2, :use_ssl => true ) do |http|
|
24
|
+
http.request(req)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
rescue StandardError => e
|
28
|
+
handle_error(e)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
def self.handle_error e
|
35
|
+
if ENV['PACT_METRICS_DEBUG'] == 'true'
|
36
|
+
Pact.configuration.output_stream.puts("DEBUG: #{e.inspect}\n" + e.backtrace.join("\n"))
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.in_thread
|
41
|
+
Thread.new do
|
42
|
+
yield
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.create_tracking_event(event, category, action, value)
|
47
|
+
{
|
48
|
+
"v" => 1,
|
49
|
+
"t" => "event",
|
50
|
+
"tid" => "UA-117778936-1",
|
51
|
+
"cid" => calculate_cid,
|
52
|
+
"an" => "Pact Ruby",
|
53
|
+
"av" => Pact::VERSION,
|
54
|
+
"aid" => "pact-ruby",
|
55
|
+
"aip" => 1,
|
56
|
+
"ds" => ENV['PACT_EXECUTING_LANGUAGE'] ? "client" : "cli",
|
57
|
+
"cd2" => ENV['CI'] == "true" ? "CI" : "unknown",
|
58
|
+
"cd3" => RUBY_PLATFORM,
|
59
|
+
"cd6" => ENV['PACT_EXECUTING_LANGUAGE'] || "unknown",
|
60
|
+
"cd7" => ENV['PACT_EXECUTING_LANGUAGE_VERSION'],
|
61
|
+
"el" => event,
|
62
|
+
"ec" => category,
|
63
|
+
"ea" => action,
|
64
|
+
"ev" => value
|
65
|
+
}
|
66
|
+
end
|
67
|
+
|
68
|
+
def self.track_events?
|
69
|
+
ENV['PACT_DO_NOT_TRACK'] != 'true'
|
70
|
+
end
|
71
|
+
|
72
|
+
def self.calculate_cid
|
73
|
+
if RUBY_PLATFORM.include? "windows"
|
74
|
+
hostname = ENV['COMPUTERNAME']
|
75
|
+
else
|
76
|
+
hostname = ENV['HOSTNAME']
|
77
|
+
end
|
78
|
+
if !hostname
|
79
|
+
hostname = Socket.gethostname
|
80
|
+
end
|
81
|
+
Digest::MD5.hexdigest hostname || SecureRandom.urlsafe_base64(5)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
data/lib/pact/version.rb
CHANGED
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.62.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-02-21 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rspec
|
@@ -385,6 +385,7 @@ files:
|
|
385
385
|
- lib/pact/tasks/verification_task.rb
|
386
386
|
- lib/pact/templates/help.erb
|
387
387
|
- lib/pact/templates/provider_state.erb
|
388
|
+
- lib/pact/utils/metrics.rb
|
388
389
|
- lib/pact/utils/string.rb
|
389
390
|
- lib/pact/version.rb
|
390
391
|
- lib/tasks/pact.rake
|
@@ -397,7 +398,7 @@ metadata:
|
|
397
398
|
source_code_uri: https://github.com/pact-foundation/pact-ruby
|
398
399
|
bug_tracker_uri: https://github.com/pact-foundation/pact-ruby/issues
|
399
400
|
documentation_uri: https://github.com/pact-foundation/pact-ruby/blob/master/README.md
|
400
|
-
post_install_message:
|
401
|
+
post_install_message:
|
401
402
|
rdoc_options: []
|
402
403
|
require_paths:
|
403
404
|
- lib
|
@@ -412,8 +413,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
412
413
|
- !ruby/object:Gem::Version
|
413
414
|
version: '0'
|
414
415
|
requirements: []
|
415
|
-
rubygems_version: 3.
|
416
|
-
signing_key:
|
416
|
+
rubygems_version: 3.3.7
|
417
|
+
signing_key:
|
417
418
|
specification_version: 4
|
418
419
|
summary: Enables consumer driven contract testing, providing a mock service and DSL
|
419
420
|
for the consumer project, and interaction playback and verification for the service
|