danger-swiftlint 0.20.1 → 0.21.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/danger_plugin.rb +11 -4
- data/lib/version.rb +1 -1
- data/spec/danger_plugin_spec.rb +52 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c683ebc4b9a3a612c68eee9889d766458b4e1a4517b7f2022d3107175adad46
|
4
|
+
data.tar.gz: dacd9783690561139fb4f4fd5ce1d100dbb82e49c881a64e5c454962abee046e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 72a01b3969c23207a994a932d0829fc9f1954c5dc37a1686e44d9496ee885cc15be1cfa4fafbbe42a6b08507c638f6055043455692d03af2c54fcd559e417c7c
|
7
|
+
data.tar.gz: d4e0b33363e8cced89e749e954e59d1ad3afb5e20fd788677436b1bebeb9ba7404f4db7cbd54647068bbf0579a02fbe6ccec9b1995ab791065f195b14063f245
|
data/lib/danger_plugin.rb
CHANGED
@@ -46,6 +46,9 @@ module Danger
|
|
46
46
|
|
47
47
|
# Errors found
|
48
48
|
attr_accessor :errors
|
49
|
+
|
50
|
+
# All issues found
|
51
|
+
attr_accessor :issues
|
49
52
|
|
50
53
|
# Lints Swift files. Will fail if `swiftlint` cannot be installed correctly.
|
51
54
|
# Generates a `markdown` list of warnings for the prose in a corpus of
|
@@ -57,7 +60,7 @@ module Danger
|
|
57
60
|
# if nil, modified and added files from the diff will be used.
|
58
61
|
# @return [void]
|
59
62
|
#
|
60
|
-
def lint_files(files = nil, inline_mode: false, fail_on_error: false, additional_swiftlint_args: '', &select_block)
|
63
|
+
def lint_files(files = nil, inline_mode: false, fail_on_error: false, additional_swiftlint_args: '', no_comment: false, &select_block)
|
61
64
|
# Fails if swiftlint isn't installed
|
62
65
|
raise 'swiftlint is not installed' unless swiftlint.installed?
|
63
66
|
|
@@ -101,21 +104,25 @@ module Danger
|
|
101
104
|
|
102
105
|
# Lint each file and collect the results
|
103
106
|
issues = run_swiftlint(files, lint_all_files, options, additional_swiftlint_args)
|
107
|
+
@issues = issues
|
104
108
|
other_issues_count = 0
|
105
|
-
unless @max_num_violations.nil?
|
109
|
+
unless @max_num_violations.nil? || no_comment
|
106
110
|
other_issues_count = issues.count - @max_num_violations if issues.count > @max_num_violations
|
107
111
|
issues = issues.take(@max_num_violations)
|
108
112
|
end
|
109
113
|
log "Received from Swiftlint: #{issues}"
|
110
114
|
|
111
115
|
# filter out any unwanted violations with the passed in select_block
|
112
|
-
if select_block
|
113
|
-
issues.select
|
116
|
+
if select_block && !no_comment
|
117
|
+
issues = issues.select { |issue| select_block.call(issue) }
|
114
118
|
end
|
115
119
|
|
116
120
|
# Filter warnings and errors
|
117
121
|
@warnings = issues.select { |issue| issue['severity'] == 'Warning' }
|
118
122
|
@errors = issues.select { |issue| issue['severity'] == 'Error' }
|
123
|
+
|
124
|
+
# Early exit so we don't comment
|
125
|
+
return if no_comment
|
119
126
|
|
120
127
|
if inline_mode
|
121
128
|
# Report with inline comment
|
data/lib/version.rb
CHANGED
data/spec/danger_plugin_spec.rb
CHANGED
@@ -410,6 +410,58 @@ module Danger
|
|
410
410
|
end
|
411
411
|
end
|
412
412
|
end
|
413
|
+
|
414
|
+
context 'when no_comment is enabled' do
|
415
|
+
|
416
|
+
it 'does not create comments' do
|
417
|
+
allow_any_instance_of(Swiftlint).to receive(:lint)
|
418
|
+
.with(hash_including(pwd: File.expand_path('.')), '')
|
419
|
+
.and_return(@swiftlint_multiviolation_response)
|
420
|
+
|
421
|
+
@swiftlint.lint_files(['spec/fixtures/some\ dir/SwiftFile.swift'], inline_mode: true, no_comment: true)
|
422
|
+
status = @swiftlint.status_report
|
423
|
+
expect(status[:warnings]).to eql([])
|
424
|
+
expect(status[:errors]).to eql([])
|
425
|
+
expect(status[:markdown]).to be_nil
|
426
|
+
end
|
427
|
+
|
428
|
+
it 'does not filter with max_violations' do
|
429
|
+
allow_any_instance_of(Swiftlint).to receive(:lint)
|
430
|
+
.with(hash_including(pwd: File.expand_path('.')), '')
|
431
|
+
.and_return(@swiftlint_multiviolation_response)
|
432
|
+
|
433
|
+
@swiftlint.max_num_violations = 1
|
434
|
+
@swiftlint.lint_files(['spec/fixtures/some\ dir/SwiftFile.swift'], no_comment: true)
|
435
|
+
issues = @swiftlint.issues
|
436
|
+
expect(issues.length).to eql(2)
|
437
|
+
end
|
438
|
+
|
439
|
+
it 'does not filter with select_block' do
|
440
|
+
allow_any_instance_of(Swiftlint).to receive(:lint)
|
441
|
+
.with(hash_including(pwd: File.expand_path('.')), '')
|
442
|
+
.and_return(@swiftlint_multiviolation_response)
|
443
|
+
|
444
|
+
@swiftlint.max_num_violations = 1
|
445
|
+
@swiftlint.lint_files(['spec/fixtures/some\ dir/SwiftFile.swift'], no_comment: true) { |v|
|
446
|
+
false
|
447
|
+
}
|
448
|
+
issues = @swiftlint.issues
|
449
|
+
expect(issues.length).to eql(2)
|
450
|
+
end
|
451
|
+
|
452
|
+
it 'correctly sets issues, warnings, and errors accessors' do
|
453
|
+
allow_any_instance_of(Swiftlint).to receive(:lint)
|
454
|
+
.with(hash_including(pwd: File.expand_path('.')), '')
|
455
|
+
.and_return(@swiftlint_multiviolation_response)
|
456
|
+
|
457
|
+
@swiftlint.lint_files(['spec/fixtures/some\ dir/SwiftFile.swift'], no_comment: true)
|
458
|
+
issues = @swiftlint.issues
|
459
|
+
warnings = @swiftlint.warnings
|
460
|
+
errors = @swiftlint.errors
|
461
|
+
expect(issues.length).to eql(warnings.length + errors.length)
|
462
|
+
end
|
463
|
+
end
|
464
|
+
|
413
465
|
|
414
466
|
it 'parses environment variables set within the swiftlint config' do
|
415
467
|
ENV['ENVIRONMENT_EXAMPLE'] = 'excluded_dir'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: danger-swiftlint
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.21.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ash Furrow
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2019-
|
15
|
+
date: 2019-05-02 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: danger
|
@@ -181,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
181
181
|
version: '0'
|
182
182
|
requirements: []
|
183
183
|
rubyforge_project:
|
184
|
-
rubygems_version: 2.7.
|
184
|
+
rubygems_version: 2.7.8
|
185
185
|
signing_key:
|
186
186
|
specification_version: 4
|
187
187
|
summary: A Danger plugin for linting Swift with SwiftLint.
|