ndr_dev_support 5.2.0 → 5.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +9 -0
- data/code_safety.yml +18 -10
- data/gemfiles/Gemfile.rails52 +7 -0
- data/gemfiles/Gemfile.rails60 +5 -0
- data/lib/minitest/rake_ci_plugin.rb +31 -2
- data/lib/ndr_dev_support/rake_ci/concerns/commit_metadata_persistable.rb +1 -0
- data/lib/ndr_dev_support/rubocop/executor.rb +18 -1
- data/lib/ndr_dev_support/version.rb +1 -1
- data/lib/tasks/ci/dependencies.rake +10 -1
- data/lib/tasks/rubocop.rake +21 -0
- data/ndr_dev_support.gemspec +1 -1
- metadata +7 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0888d5815e584f9a19a63639faf323ccd24c0918645c623f1648167e8a3e1cba'
|
4
|
+
data.tar.gz: a8cd571529741d2dcebbf6d6f78f754586753a26ca24fa3bd3a9fd007a384635
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a38a7122c12eadd4521cbd06e898c80c316605596e06bfc71d70d192bed1a4285c9988dfb5200ebec5b0c1b6ccd0af0e3a1a0e8ec281dba3fb9691b553937864
|
7
|
+
data.tar.gz: 499aa9c741b54ef41af36023a306ec23c0b3caaffd4f1f5eea5e3c4158c298037d22e226ce92e0f4fbd56e99ea67044e84eb3c7147bbdb86ff58dabbe458aac5
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,15 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
*no unreleased changes*
|
3
3
|
|
4
|
+
## 5.3.0 / 2019-05-15
|
5
|
+
### Added
|
6
|
+
* Offer current checkout name as project name when outputting system version info
|
7
|
+
* Added a rake rubocop:summary task to list offence counts by cop (#52)
|
8
|
+
|
9
|
+
### Fixed
|
10
|
+
* rake rubocop:diff now gracefully reports ruby syntax errors (#54)
|
11
|
+
* Support Rails 6 release candidate
|
12
|
+
|
4
13
|
## 5.2.0 / 2019-03-21
|
5
14
|
### Added
|
6
15
|
* Added rake task to filter brakeman output to specific fingerprints. (#51)
|
data/code_safety.yml
CHANGED
@@ -3,7 +3,7 @@ file safety:
|
|
3
3
|
".gitignore":
|
4
4
|
comments:
|
5
5
|
reviewed_by: josh.pencheon
|
6
|
-
safe_revision:
|
6
|
+
safe_revision: f462b71c3359c114eaff872b25f5bb864744dc92
|
7
7
|
".hound.yml":
|
8
8
|
comments:
|
9
9
|
reviewed_by: timgentry
|
@@ -15,11 +15,11 @@ file safety:
|
|
15
15
|
".travis.yml":
|
16
16
|
comments:
|
17
17
|
reviewed_by: josh.pencheon
|
18
|
-
safe_revision:
|
18
|
+
safe_revision: f462b71c3359c114eaff872b25f5bb864744dc92
|
19
19
|
CHANGELOG.md:
|
20
20
|
comments:
|
21
21
|
reviewed_by: josh.pencheon
|
22
|
-
safe_revision:
|
22
|
+
safe_revision: 9e77154cbe9ee9da8936b21991b00baa008c0629
|
23
23
|
CODE_OF_CONDUCT.md:
|
24
24
|
comments:
|
25
25
|
reviewed_by: timgentry
|
@@ -48,6 +48,14 @@ file safety:
|
|
48
48
|
comments:
|
49
49
|
reviewed_by: timgentry
|
50
50
|
safe_revision: c59a45986f8b6d087c8c21b1e889f31f7346da17
|
51
|
+
gemfiles/Gemfile.rails52:
|
52
|
+
comments:
|
53
|
+
reviewed_by: josh.pencheon
|
54
|
+
safe_revision: f462b71c3359c114eaff872b25f5bb864744dc92
|
55
|
+
gemfiles/Gemfile.rails60:
|
56
|
+
comments:
|
57
|
+
reviewed_by: josh.pencheon
|
58
|
+
safe_revision: f462b71c3359c114eaff872b25f5bb864744dc92
|
51
59
|
lib/minitest/rake_ci.rb:
|
52
60
|
comments:
|
53
61
|
reviewed_by: josh.pencheon
|
@@ -55,7 +63,7 @@ file safety:
|
|
55
63
|
lib/minitest/rake_ci_plugin.rb:
|
56
64
|
comments:
|
57
65
|
reviewed_by: josh.pencheon
|
58
|
-
safe_revision:
|
66
|
+
safe_revision: f3a5b9d581f7ef463fc1a3075033c39b3397a46b
|
59
67
|
lib/ndr_dev_support.rb:
|
60
68
|
comments:
|
61
69
|
reviewed_by: timgentry
|
@@ -159,7 +167,7 @@ file safety:
|
|
159
167
|
lib/ndr_dev_support/rake_ci/concerns/commit_metadata_persistable.rb:
|
160
168
|
comments:
|
161
169
|
reviewed_by: josh.pencheon
|
162
|
-
safe_revision:
|
170
|
+
safe_revision: fd9fc5dd275a2285549984688d1d3744a628fd73
|
163
171
|
lib/ndr_dev_support/rake_ci/redmine/ticket_resolver.rb:
|
164
172
|
comments:
|
165
173
|
reviewed_by: josh.pencheon
|
@@ -171,7 +179,7 @@ file safety:
|
|
171
179
|
lib/ndr_dev_support/rubocop/executor.rb:
|
172
180
|
comments:
|
173
181
|
reviewed_by: josh.pencheon
|
174
|
-
safe_revision:
|
182
|
+
safe_revision: e56876f46536ba006a9b68029306f41a188bf9c6
|
175
183
|
lib/ndr_dev_support/rubocop/range_augmenter.rb:
|
176
184
|
comments:
|
177
185
|
reviewed_by: joshpencheon
|
@@ -195,7 +203,7 @@ file safety:
|
|
195
203
|
lib/ndr_dev_support/version.rb:
|
196
204
|
comments:
|
197
205
|
reviewed_by: josh.pencheon
|
198
|
-
safe_revision:
|
206
|
+
safe_revision: 9e77154cbe9ee9da8936b21991b00baa008c0629
|
199
207
|
lib/tasks/audit_code.rake:
|
200
208
|
comments: Identical to the version reviewed by josh.pencheon when contained within
|
201
209
|
ndr_support
|
@@ -216,7 +224,7 @@ file safety:
|
|
216
224
|
lib/tasks/ci/dependencies.rake:
|
217
225
|
comments:
|
218
226
|
reviewed_by: josh.pencheon
|
219
|
-
safe_revision:
|
227
|
+
safe_revision: 2f22aa6cc2f86b84e0bf2247e73bed205930db5a
|
220
228
|
lib/tasks/ci/housekeep.rake:
|
221
229
|
comments:
|
222
230
|
reviewed_by: timgentry
|
@@ -264,11 +272,11 @@ file safety:
|
|
264
272
|
lib/tasks/rubocop.rake:
|
265
273
|
comments:
|
266
274
|
reviewed_by: josh.pencheon
|
267
|
-
safe_revision:
|
275
|
+
safe_revision: 9f33cc3f6fed0c24cb215befa1beaa4bc03e81ef
|
268
276
|
ndr_dev_support.gemspec:
|
269
277
|
comments:
|
270
278
|
reviewed_by: josh.pencheon
|
271
|
-
safe_revision:
|
279
|
+
safe_revision: d117ccbb85276b2962936a6c50018ff1d6b5a12a
|
272
280
|
test/daemon/ci_server_test.rb:
|
273
281
|
comments:
|
274
282
|
reviewed_by: josh.pencheon
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'active_support/core_ext/string/inflections'
|
1
2
|
require 'minitest'
|
2
3
|
require 'rugged'
|
3
4
|
require 'ndr_dev_support/rake_ci/concerns/commit_metadata_persistable'
|
@@ -46,6 +47,34 @@ module Minitest
|
|
46
47
|
|
47
48
|
private
|
48
49
|
|
50
|
+
def error_snippets
|
51
|
+
snippets_for results.reject(&:skipped?).select(&:error?)
|
52
|
+
end
|
53
|
+
|
54
|
+
def failure_snippets
|
55
|
+
snippets_for results.reject(&:skipped?).reject(&:error?)
|
56
|
+
end
|
57
|
+
|
58
|
+
# Adapted from Rails' TestUnit reporter
|
59
|
+
def snippets_for(results, limit = 5)
|
60
|
+
executable = defined?(Rails) ? 'bin/rails test ' : 'bundle exec rake test TEST='
|
61
|
+
|
62
|
+
snippets = results[0, limit].map do |result|
|
63
|
+
location, line =
|
64
|
+
if result.respond_to?(:source_location)
|
65
|
+
result.source_location
|
66
|
+
else
|
67
|
+
result.method(result.name).source_location
|
68
|
+
end
|
69
|
+
|
70
|
+
"#{executable}#{location.sub(%r{^#{Dir.pwd}/?}, '')}:#{line}"
|
71
|
+
end
|
72
|
+
|
73
|
+
snippets << "+ #{results.length - limit} more" if (results.length - limit).positive?
|
74
|
+
|
75
|
+
snippets.any? ? "\n```\n#{snippets.join("\n")}\n```" : ''
|
76
|
+
end
|
77
|
+
|
49
78
|
def current_statistics
|
50
79
|
@current_statistics ||= {
|
51
80
|
total_time: total_time, runs: count, assertions: assertions, failures: failures,
|
@@ -83,7 +112,7 @@ module Minitest
|
|
83
112
|
def failures_attachment
|
84
113
|
{
|
85
114
|
color: 'danger',
|
86
|
-
text:
|
115
|
+
text: 'test failure'.pluralize(failures) + failure_snippets,
|
87
116
|
footer: 'bundle exec rake ci:minitest'
|
88
117
|
}
|
89
118
|
end
|
@@ -91,7 +120,7 @@ module Minitest
|
|
91
120
|
def errors_attachment
|
92
121
|
{
|
93
122
|
color: 'warning',
|
94
|
-
text:
|
123
|
+
text: 'test error'.pluralize(errors) + error_snippets,
|
95
124
|
footer: 'bundle exec rake ci:minitest'
|
96
125
|
}
|
97
126
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'json'
|
2
|
+
require 'open3'
|
2
3
|
require 'shellwords'
|
3
4
|
|
4
5
|
module NdrDevSupport
|
@@ -15,18 +16,34 @@ module NdrDevSupport
|
|
15
16
|
|
16
17
|
def initialize(filenames)
|
17
18
|
@filenames = Executor.target_files & filenames
|
19
|
+
|
20
|
+
check_ruby_syntax
|
18
21
|
end
|
19
22
|
|
20
23
|
def offenses_by_file
|
21
24
|
return [] if @filenames.empty?
|
22
25
|
|
23
|
-
escaped_paths = @filenames.map { |path| Shellwords.escape(path) }
|
24
26
|
output = JSON.parse(`rubocop --format json #{escaped_paths.join(' ')}`)
|
25
27
|
|
26
28
|
output['files'].each_with_object({}) do |file_output, result|
|
27
29
|
result[file_output['path']] = file_output['offenses']
|
28
30
|
end
|
29
31
|
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def escaped_paths
|
36
|
+
@escaped_paths ||= @filenames.map { |path| Shellwords.escape(path) }
|
37
|
+
end
|
38
|
+
|
39
|
+
def check_ruby_syntax
|
40
|
+
escaped_paths.each do |path|
|
41
|
+
stdout_and_err_str, status = Open3.capture2e("ruby -c #{path}")
|
42
|
+
next if status.exitstatus.zero?
|
43
|
+
|
44
|
+
raise stdout_and_err_str
|
45
|
+
end
|
46
|
+
end
|
30
47
|
end
|
31
48
|
end
|
32
49
|
end
|
@@ -1,9 +1,11 @@
|
|
1
|
+
require 'active_support/core_ext/object/blank'
|
2
|
+
|
1
3
|
namespace :ci do
|
2
4
|
namespace :dependencies do
|
3
5
|
desc 'setup'
|
4
6
|
task :setup do
|
5
7
|
require 'highline/import'
|
6
|
-
ENV['PROJECT_NAME'] = gem_name ||
|
8
|
+
ENV['PROJECT_NAME'] = gem_name || ask_for_project_name
|
7
9
|
end
|
8
10
|
|
9
11
|
desc 'process'
|
@@ -39,6 +41,13 @@ namespace :ci do
|
|
39
41
|
end
|
40
42
|
end
|
41
43
|
|
44
|
+
def ask_for_project_name
|
45
|
+
dir_name = File.basename(Dir.pwd)
|
46
|
+
response = ask("Project Name (leave blank to use '#{dir_name}'): ")
|
47
|
+
|
48
|
+
response.presence || dir_name
|
49
|
+
end
|
50
|
+
|
42
51
|
# There is probably a simpler way of getting this information
|
43
52
|
def gem_name
|
44
53
|
self_dependency = Bundler.environment.current_dependencies.detect do |dep|
|
data/lib/tasks/rubocop.rake
CHANGED
@@ -71,4 +71,25 @@ namespace :rubocop do
|
|
71
71
|
rubocop_file_ranges(file_ranges)
|
72
72
|
end
|
73
73
|
end
|
74
|
+
|
75
|
+
desc 'A summary of offense counts by cop'
|
76
|
+
task :summary do
|
77
|
+
# Usage: bin/rake rubocop:summary
|
78
|
+
require 'json'
|
79
|
+
|
80
|
+
output = `bundle exec rubocop --format json .`
|
81
|
+
offenses = JSON.parse(output)['files'].flat_map { |file| file['offenses'] }
|
82
|
+
cop_names = offenses.map { |offense| offense['cop_name'] }
|
83
|
+
summary = cop_names.group_by { |x| x }.
|
84
|
+
map { |cop_name, array| [cop_name, array.count] }.
|
85
|
+
sort_by { |_cop_name, count| count }.
|
86
|
+
reverse
|
87
|
+
cop_name_max_length = cop_names.map(&:length).max
|
88
|
+
|
89
|
+
puts "#{'Cop Name'.ljust(cop_name_max_length)} | Count"
|
90
|
+
puts "#{'-' * cop_name_max_length}-+------"
|
91
|
+
summary.each do |cop_name, count|
|
92
|
+
puts "#{cop_name.ljust(cop_name_max_length)} | #{count}"
|
93
|
+
end
|
94
|
+
end
|
74
95
|
end
|
data/ndr_dev_support.gemspec
CHANGED
@@ -40,7 +40,7 @@ Gem::Specification.new do |spec|
|
|
40
40
|
spec.add_dependency 'selenium-webdriver'
|
41
41
|
|
42
42
|
# CI server dependencies:
|
43
|
-
spec.add_dependency 'activesupport', '< 6.
|
43
|
+
spec.add_dependency 'activesupport', '< 6.1'
|
44
44
|
spec.add_dependency 'brakeman', '>= 4.2.0'
|
45
45
|
spec.add_dependency 'bundler-audit'
|
46
46
|
spec.add_dependency 'github-linguist'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ndr_dev_support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- NCRS Development Team
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|
@@ -170,14 +170,14 @@ dependencies:
|
|
170
170
|
requirements:
|
171
171
|
- - "<"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: 6.
|
173
|
+
version: '6.1'
|
174
174
|
type: :runtime
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - "<"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: 6.
|
180
|
+
version: '6.1'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: brakeman
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -364,6 +364,8 @@ files:
|
|
364
364
|
- bin/console
|
365
365
|
- bin/setup
|
366
366
|
- code_safety.yml
|
367
|
+
- gemfiles/Gemfile.rails52
|
368
|
+
- gemfiles/Gemfile.rails60
|
367
369
|
- lib/minitest/rake_ci.rb
|
368
370
|
- lib/minitest/rake_ci_plugin.rb
|
369
371
|
- lib/ndr_dev_support.rb
|
@@ -438,7 +440,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
438
440
|
- !ruby/object:Gem::Version
|
439
441
|
version: '0'
|
440
442
|
requirements: []
|
441
|
-
rubygems_version: 3.0.
|
443
|
+
rubygems_version: 3.0.3
|
442
444
|
signing_key:
|
443
445
|
specification_version: 4
|
444
446
|
summary: NDR Developer Support library
|