coverband-service-client 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -3
- data/lib/coverband-service-client.rb +63 -21
- data/lib/coverband/service/client/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 613941985d4fb60122f3e35a84c5139a7aa1395008a443b3a3478eef59df2b30
|
4
|
+
data.tar.gz: 03eabff6d96401aede1ed1263fdc26a400e93fc4e26ad164977e6b77a4b9a4a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d800e7c8abc0056866a6f9f96b1c89b9c1fc2ebcd7f5bdc17477199445f5740cc968d795cca1ad9a2ca9951480f32b8960f8e4729e975c2f19eea69aa57c8e7
|
7
|
+
data.tar.gz: 32d5360aa6a50d722d53481f22736e8c47c05844b9372fdd3d1e993ea2209fbdd3043e66dd2c016aad04df7195cffeb124d9fa8ca4bd66ce361f75462a368ffa
|
data/Gemfile.lock
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
coverband-service-client (0.0.
|
4
|
+
coverband-service-client (0.0.9)
|
5
5
|
coverband (~> 4.2.4)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
coverband (4.2.
|
10
|
+
coverband (4.2.5)
|
11
11
|
redis
|
12
12
|
minitest (5.14.0)
|
13
13
|
rake (13.0.1)
|
14
|
-
redis (4.1.
|
14
|
+
redis (4.1.4)
|
15
15
|
|
16
16
|
PLATFORMS
|
17
17
|
ruby
|
@@ -4,21 +4,26 @@ require 'coverband'
|
|
4
4
|
require 'coverband/service/client/version'
|
5
5
|
require 'securerandom'
|
6
6
|
|
7
|
-
COVERBAND_ENV = ENV['RACK_ENV'] || ENV['RAILS_ENV'] || (defined?(Rails) ? Rails.env : 'unknown')
|
8
|
-
COVERBAND_SERVICE_URL = ENV['COVERBAND_URL'] || 'https://coverband.io'
|
9
|
-
COVERBAND_TIMEOUT = (COVERBAND_ENV == 'development') ? 5 : 1
|
10
|
-
COVERBAND_ENABLE_DEV_MODE = ENV['COVERBAND_ENABLE_DEV_MODE'] || false
|
11
|
-
COVERBAND_ENABLE_TEST_MODE = ENV['COVERBAND_ENABLE_TEST_MODE'] || false
|
12
|
-
COVERBAND_PROCESS_TYPE = ENV['PROCESS_TYPE'] || 'unknown'
|
13
|
-
COVERBAND_REPORT_PERIOD = (ENV['COVERBAND_REPORT_PERIOD'] || 600).to_i
|
14
|
-
|
15
7
|
module Coverband
|
8
|
+
COVERBAND_ENV = ENV['RACK_ENV'] || ENV['RAILS_ENV'] || (defined?(Rails) ? Rails.env : 'unknown')
|
9
|
+
COVERBAND_SERVICE_URL = ENV['COVERBAND_URL'] || 'https://coverband.io'
|
10
|
+
COVERBAND_TIMEOUT = (COVERBAND_ENV == 'development') ? 5 : 1
|
11
|
+
COVERBAND_ENABLE_DEV_MODE = ENV['COVERBAND_ENABLE_DEV_MODE'] || false
|
12
|
+
COVERBAND_ENABLE_TEST_MODE = ENV['COVERBAND_ENABLE_TEST_MODE'] || false
|
13
|
+
COVERBAND_PROCESS_TYPE = ENV['PROCESS_TYPE'] || 'unknown'
|
14
|
+
COVERBAND_REPORT_PERIOD = (ENV['COVERBAND_REPORT_PERIOD'] || 600).to_i
|
15
|
+
|
16
|
+
def self.service_disabled_dev_test_env?
|
17
|
+
(COVERBAND_ENV == 'test' && !COVERBAND_ENABLE_TEST_MODE) ||
|
18
|
+
(COVERBAND_ENV == 'development' && !COVERBAND_ENABLE_DEV_MODE)
|
19
|
+
end
|
16
20
|
|
17
|
-
if
|
18
|
-
COVERBAND_ENV == 'development' && !COVERBAND_ENABLE_DEV_MODE
|
19
|
-
)
|
21
|
+
if service_disabled_dev_test_env?
|
20
22
|
def self.report_coverage
|
21
|
-
# for now disable coverband reporting in test env by default
|
23
|
+
# for now disable coverband reporting in test & dev env by default
|
24
|
+
if Coverband.configuration.verbose
|
25
|
+
puts "Coverband: disabled for #{COVERBAND_ENV}, set COVERBAND_ENABLE_DEV_MODE or COVERBAND_ENABLE_TEST_MODE to enable"
|
26
|
+
end
|
22
27
|
end
|
23
28
|
end
|
24
29
|
|
@@ -40,6 +45,10 @@ module Coverband
|
|
40
45
|
@runtime_env = opts.fetch(:runtime_env) { COVERBAND_ENV }
|
41
46
|
end
|
42
47
|
|
48
|
+
def logger
|
49
|
+
Coverband.configuration.logger
|
50
|
+
end
|
51
|
+
|
43
52
|
def clear!
|
44
53
|
# TBD
|
45
54
|
end
|
@@ -53,11 +62,15 @@ module Coverband
|
|
53
62
|
0
|
54
63
|
end
|
55
64
|
|
65
|
+
def api_key
|
66
|
+
ENV['COVERBAND_API_KEY'] || Coverband.configuration.api_key
|
67
|
+
end
|
68
|
+
|
56
69
|
# TODO: no longer get by type just get both reports in a single request
|
57
70
|
def coverage(local_type = nil, opts = {})
|
58
71
|
local_type ||= opts.key?(:override_type) ? opts[:override_type] : type
|
59
72
|
uri = URI("#{coverband_url}/api/coverage/#{ENV['COVERBAND_ID']}?type=#{local_type}")
|
60
|
-
req = Net::HTTP::Get.new(uri, 'Content-Type' => 'application/json', 'Coverband-Token' =>
|
73
|
+
req = Net::HTTP::Get.new(uri, 'Content-Type' => 'application/json', 'Coverband-Token' => api_key)
|
61
74
|
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
|
62
75
|
http.request(req)
|
63
76
|
end
|
@@ -70,7 +83,6 @@ module Coverband
|
|
70
83
|
end
|
71
84
|
|
72
85
|
def save_report(report)
|
73
|
-
#puts caller.join(',')
|
74
86
|
return if report.empty?
|
75
87
|
|
76
88
|
# TODO: do we need dup
|
@@ -99,12 +111,18 @@ module Coverband
|
|
99
111
|
private
|
100
112
|
|
101
113
|
def save_coverage(data)
|
114
|
+
if api_key.nil?
|
115
|
+
puts "Coverband: Error: no Coverband API key was found!"
|
116
|
+
end
|
117
|
+
|
102
118
|
uri = URI("#{coverband_url}/api/collector")
|
119
|
+
logger&.info "Coverband: saving #{uri}" if Coverband.configuration.verbose
|
103
120
|
req = Net::HTTP::Post.new(uri,
|
104
121
|
'Content-Type' => 'application/json',
|
105
|
-
'Coverband-Token' =>
|
106
|
-
# puts "sending #{data}"
|
122
|
+
'Coverband-Token' => api_key)
|
107
123
|
req.body = { remote_uuid: SecureRandom.uuid, data: data }.to_json
|
124
|
+
|
125
|
+
logger&.info "Coverband: saving #{req.body}" if Coverband.configuration.verbose
|
108
126
|
res = Net::HTTP.start(
|
109
127
|
uri.hostname,
|
110
128
|
uri.port,
|
@@ -155,6 +173,10 @@ module Coverband
|
|
155
173
|
|
156
174
|
private
|
157
175
|
|
176
|
+
def logger
|
177
|
+
Coverband.configuration.logger
|
178
|
+
end
|
179
|
+
|
158
180
|
def save_tracked_views(views:, reported_time:)
|
159
181
|
uri = URI("#{COVERBAND_SERVICE_URL}/api/collector")
|
160
182
|
req = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json', 'Coverband-Token' => ENV['COVERBAND_API_KEY'])
|
@@ -180,19 +202,39 @@ module Coverband
|
|
180
202
|
end
|
181
203
|
end
|
182
204
|
|
205
|
+
module Coverband
|
206
|
+
class Configuration
|
207
|
+
attr_accessor :api_key
|
208
|
+
end
|
209
|
+
end
|
210
|
+
|
183
211
|
Coverband.configure do |config|
|
184
212
|
# Use The Test Service Adapter
|
185
|
-
config.store = Coverband::Adapters::Service.new(COVERBAND_SERVICE_URL)
|
213
|
+
config.store = Coverband::Adapters::Service.new(Coverband::COVERBAND_SERVICE_URL)
|
186
214
|
|
187
215
|
# default to tracking views true
|
188
|
-
config.track_views = ENV['COVERBAND_DISABLE_VIEW_TRACKER']
|
216
|
+
config.track_views = if ENV['COVERBAND_DISABLE_VIEW_TRACKER']
|
217
|
+
false
|
218
|
+
elsif Coverband.service_disabled_dev_test_env?
|
219
|
+
false
|
220
|
+
else
|
221
|
+
true
|
222
|
+
end
|
189
223
|
|
190
224
|
# report every 10m by default
|
191
|
-
config.background_reporting_sleep_seconds = COVERBAND_ENV == 'production' ? COVERBAND_REPORT_PERIOD : 60
|
225
|
+
config.background_reporting_sleep_seconds = Coverband::COVERBAND_ENV == 'production' ? Coverband::COVERBAND_REPORT_PERIOD : 60
|
192
226
|
# add a wiggle to avoid service stampede
|
193
|
-
config.reporting_wiggle = COVERBAND_ENV == 'production' ? 90 : 6
|
227
|
+
config.reporting_wiggle = Coverband::COVERBAND_ENV == 'production' ? 90 : 6
|
194
228
|
|
195
|
-
if COVERBAND_ENV == 'test'
|
229
|
+
if Coverband::COVERBAND_ENV == 'test'
|
196
230
|
config.background_reporting_enabled = false
|
197
231
|
end
|
198
232
|
end
|
233
|
+
|
234
|
+
# NOTE: it is really hard to bypass / overload our config we should fix this in Coverband
|
235
|
+
# this hopefully detects anyone that has both gems and was trying to configure Coverband themselves.
|
236
|
+
if File.exist?('./config/coverband.rb')
|
237
|
+
puts "Warning: config/coverband.rb found, this overrides coverband service allowing one to setup open source Coverband"
|
238
|
+
end
|
239
|
+
|
240
|
+
Coverband.configure('./config/coverband_service.rb') if File.exist?('./config/coverband_service.rb')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coverband-service-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Mayer
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-05-
|
12
|
+
date: 2020-05-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|