danger-android_lint 0.0.9 → 0.0.10
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 +2 -5
- data/.ruby-version +1 -1
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +1 -0
- data/README.md +7 -0
- data/lib/android_lint/gem_version.rb +1 -1
- data/lib/android_lint/plugin.rb +13 -9
- data/spec/android_lint_spec.rb +46 -17
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,4 @@
|
|
1
1
|
---
|
2
|
-
SHA256:
|
3
|
-
metadata.gz: 9ada934a0418e182a4f33db8040b2ac2686b51062d9298bcafeec2641333c794
|
4
|
-
data.tar.gz: f083ac782badad37b3013f29326723662c6e30fa87d1f553e9049edb0d4308b0
|
5
2
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee6bc1e76ca2a7d11670cf1d0d50438a05aa62e93c6d81b289b48e4b2c2709181a234d6f6664439dc1aa531e5b1467722aa71752934662495cf992188227381c
|
4
|
+
data.tar.gz: 0f0e99183aea7bbbda95cddeb56c29d9f939d948f627e8da60b2bf2711dd0d8a794d7349c534cf9c5fa3d6e940abbc7c1ef38e6c599792f4ee8ee5b2689b2643
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
3.0.2
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
# 0.0.10
|
2
|
+
|
3
|
+
- Fix `filtering_lines` parameter to also apply to when `inline_mode` is `false` ([@petitJAM](https://github.com/petitJAM))
|
4
|
+
|
1
5
|
# 0.0.9
|
2
6
|
- Add `filtering_lines` parameter, to show lint issues only on modified lines ([@ShivamPokhriyal](https://github.com/ShivamPokhriyal))
|
3
7
|
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -85,6 +85,13 @@ android_lint.filtering = true
|
|
85
85
|
android_lint.lint
|
86
86
|
```
|
87
87
|
|
88
|
+
Additionally, you can further filter to only the modified lines by setting the `filtering_lines` parameter to `true`.
|
89
|
+
|
90
|
+
```rb
|
91
|
+
android_lint.filtering_lines = true
|
92
|
+
android_lint.lint
|
93
|
+
```
|
94
|
+
|
88
95
|
#### Make Danger comment directly on the line instead of printing a Markdown table (GitHub only)
|
89
96
|
|
90
97
|
```rb
|
data/lib/android_lint/plugin.rb
CHANGED
@@ -169,9 +169,13 @@ module Danger
|
|
169
169
|
results.each do |r|
|
170
170
|
location = r.xpath('location').first
|
171
171
|
filename = location.get('file').gsub(dir, "")
|
172
|
-
next unless !filtering || (target_files.include? filename)
|
173
|
-
line = location.get('line') || 'N/A'
|
172
|
+
next unless (!filtering && !filtering_lines) || (target_files.include? filename)
|
173
|
+
line = location.get('line').to_i || 'N/A'
|
174
174
|
reason = r.get('message')
|
175
|
+
if filtering_lines
|
176
|
+
added_lines = parse_added_line_numbers(git.diff[filename].patch)
|
177
|
+
next unless added_lines.include? line
|
178
|
+
end
|
175
179
|
count = count + 1
|
176
180
|
message << "`#{filename}` | #{line} | #{reason} \n"
|
177
181
|
end
|
@@ -189,7 +193,7 @@ module Danger
|
|
189
193
|
# Send inline comment with danger's warn or fail method
|
190
194
|
#
|
191
195
|
# @return [void]
|
192
|
-
def send_inline_comment
|
196
|
+
def send_inline_comment(issues)
|
193
197
|
target_files = (git.modified_files - git.deleted_files) + git.added_files
|
194
198
|
dir = "#{Dir.pwd}/"
|
195
199
|
SEVERITY_LEVELS.reverse.each do |level|
|
@@ -201,7 +205,7 @@ module Danger
|
|
201
205
|
next unless (!filtering && !filtering_lines) || (target_files.include? filename)
|
202
206
|
line = (location.get('line') || "0").to_i
|
203
207
|
if filtering_lines
|
204
|
-
added_lines =
|
208
|
+
added_lines = parse_added_line_numbers(git.diff[filename].patch)
|
205
209
|
next unless added_lines.include? line
|
206
210
|
end
|
207
211
|
send(level === "Warning" ? "warn" : "fail", r.get('message'), file: filename, line: line)
|
@@ -209,10 +213,10 @@ module Danger
|
|
209
213
|
end
|
210
214
|
end
|
211
215
|
|
212
|
-
#
|
213
|
-
def
|
216
|
+
# Parses git diff of a file and retuns an array of added line numbers.
|
217
|
+
def parse_added_line_numbers(diff)
|
214
218
|
current_line_number = nil
|
215
|
-
|
219
|
+
added_line_numbers = []
|
216
220
|
diff_lines = diff.strip.split("\n")
|
217
221
|
diff_lines.each_with_index do |line, index|
|
218
222
|
if m = /\+(\d+)(?:,\d+)? @@/.match(line)
|
@@ -222,7 +226,7 @@ module Danger
|
|
222
226
|
if !current_line_number.nil?
|
223
227
|
if line.start_with?('+')
|
224
228
|
# added line
|
225
|
-
|
229
|
+
added_line_numbers.push current_line_number
|
226
230
|
current_line_number += 1
|
227
231
|
elsif !line.start_with?('-')
|
228
232
|
# unmodified line
|
@@ -231,7 +235,7 @@ module Danger
|
|
231
235
|
end
|
232
236
|
end
|
233
237
|
end
|
234
|
-
|
238
|
+
added_line_numbers
|
235
239
|
end
|
236
240
|
|
237
241
|
def gradlew_exists?
|
data/spec/android_lint_spec.rb
CHANGED
@@ -193,7 +193,7 @@ module Danger
|
|
193
193
|
allow(Dir).to receive(:pwd).and_return("/Users/shivampokhriyal/Documents/projects/Commcare/commcare-android")
|
194
194
|
|
195
195
|
allow(@android_lint.git).to receive(:modified_files).and_return([
|
196
|
-
|
196
|
+
"app/build.gradle",
|
197
197
|
])
|
198
198
|
|
199
199
|
fake_patch = File.read("spec/fixtures/pr-diff.diff")
|
@@ -207,28 +207,57 @@ module Danger
|
|
207
207
|
allow(File).to receive(:open).with(@android_lint.report_file).and_return(fake_result)
|
208
208
|
end
|
209
209
|
|
210
|
-
|
211
|
-
|
212
|
-
|
210
|
+
context 'when inline_mode: true' do
|
211
|
+
it 'with filtering_lines, only show issues in modified lines' do
|
212
|
+
@android_lint.filtering_lines = true
|
213
|
+
@android_lint.lint inline_mode: true
|
213
214
|
|
214
|
-
|
215
|
-
|
215
|
+
error = @android_lint.status_report[:errors]
|
216
|
+
expect(error).to include("fake message three")
|
216
217
|
|
217
|
-
|
218
|
-
|
219
|
-
|
218
|
+
expect(error).not_to include("fake message one")
|
219
|
+
expect(error).not_to include("fake message two")
|
220
|
+
expect(error).not_to include("fake message in unmodified file")
|
221
|
+
end
|
222
|
+
|
223
|
+
it 'with filtering, show all issues in modified files' do
|
224
|
+
@android_lint.filtering = true
|
225
|
+
@android_lint.lint inline_mode: true
|
226
|
+
|
227
|
+
error = @android_lint.status_report[:errors]
|
228
|
+
expect(error).to include("fake message one")
|
229
|
+
expect(error).to include("fake message two")
|
230
|
+
expect(error).to include("fake message three")
|
231
|
+
|
232
|
+
expect(error).not_to include("fake message in unmodified file")
|
233
|
+
end
|
220
234
|
end
|
221
235
|
|
222
|
-
|
223
|
-
|
224
|
-
|
236
|
+
context 'when inline_mode: false' do
|
237
|
+
it 'with filtering_lines, only show issues in modified lines' do
|
238
|
+
@android_lint.filtering_lines = true
|
239
|
+
@android_lint.lint inline_mode: false
|
240
|
+
|
241
|
+
puts @android_lint.status_report[:markdowns]
|
242
|
+
message = @android_lint.status_report[:markdowns][0].to_s
|
243
|
+
expect(message).to include("fake message three")
|
244
|
+
|
245
|
+
expect(message).not_to include("fake message one")
|
246
|
+
expect(message).not_to include("fake message two")
|
247
|
+
expect(message).not_to include("fake message in unmodified file")
|
248
|
+
end
|
249
|
+
|
250
|
+
it 'with filtering, show all issues in modified files' do
|
251
|
+
@android_lint.filtering = true
|
252
|
+
@android_lint.lint inline_mode: false
|
225
253
|
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
254
|
+
message = @android_lint.status_report[:markdowns][0].to_s
|
255
|
+
expect(message).to include("fake message one")
|
256
|
+
expect(message).to include("fake message two")
|
257
|
+
expect(message).to include("fake message three")
|
230
258
|
|
231
|
-
|
259
|
+
expect(message).not_to include("fake message in unmodified file")
|
260
|
+
end
|
232
261
|
end
|
233
262
|
end
|
234
263
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: danger-android_lint
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gustavo Barbosa
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-04-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oga
|
@@ -200,7 +200,7 @@ homepage: https://github.com/loadsmart/danger-android_lint
|
|
200
200
|
licenses:
|
201
201
|
- MIT
|
202
202
|
metadata: {}
|
203
|
-
post_install_message:
|
203
|
+
post_install_message:
|
204
204
|
rdoc_options: []
|
205
205
|
require_paths:
|
206
206
|
- lib
|
@@ -215,8 +215,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
215
215
|
- !ruby/object:Gem::Version
|
216
216
|
version: '0'
|
217
217
|
requirements: []
|
218
|
-
rubygems_version: 3.0.
|
219
|
-
signing_key:
|
218
|
+
rubygems_version: 3.0.9
|
219
|
+
signing_key:
|
220
220
|
specification_version: 4
|
221
221
|
summary: Lint files of a gradle based Android project. This is done using the Android's
|
222
222
|
Lint tool. Results are passed out as tables in markdown.
|