danger-android_lint 0.0.8 → 0.0.11

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 6fb3bbc5b97d33a9495f3c3811b6a3dbe6932dcc
4
- data.tar.gz: 2c2d08a45644d86fbd60364fc80ec2bbfbe8eac9
2
+ SHA256:
3
+ metadata.gz: 79e5bfcae51d8156567b963bb7ac48ea67e0db8f2465c99746ffad9e922d4b12
4
+ data.tar.gz: b9e3527bba12cbd1d88713a6bd33ced049ad8edf630c2e5820eb8065fbe63267
5
5
  SHA512:
6
- metadata.gz: 6fb633fd0c8c48391c4097103e0779ca0d8eff4d6bfcb6824c9400f1a0911c00c5b06d4c122fefcb6eb59745e7155411d5f77f5844ef17103835a61a9465f94c
7
- data.tar.gz: 4a10c53f60ebb6db842c88e08c3121bd42c95811f0c639578c73dbc12e7e32cab1763ba24e3b007ffc23d6651038c206af76ddeb9d07c140dbd2bf8faf23faea
6
+ metadata.gz: 1f8811a723a32f71f8e505259f0df20b737cf7e8aa545e0b825ac8840f4411214be825d195f0ba40baad8b35f91ab6aa153ba915deaafdc2b9aa732ff57b4ff3
7
+ data.tar.gz: 43e252db44f9d9254315b70c640c37edc4f8ee2996f279ab3afb4131a5ed371fa1734887afe776f48f4fabc39f3979e7127e2de38d18034e2009f4335276c004
@@ -0,0 +1,13 @@
1
+ version: 2.1
2
+ orbs:
3
+ ruby: circleci/ruby@1.0
4
+
5
+ jobs:
6
+ build:
7
+ docker:
8
+ - image: circleci/ruby:2.7
9
+ steps:
10
+ - checkout
11
+ - run: gem install bundler:2.2.10
12
+ - run: bundle install
13
+ - run: bundle exec rake spec
data/.github/CODEOWNERS CHANGED
@@ -1 +1 @@
1
- * @loadsmart/mobile
1
+ * @barbosa
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.3.5
1
+ 3.0.2
data/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ # 0.0.11
2
+
3
+ - Add `excluding_issue_ids` parameter to skip showing issues with the given IDs, e.g. "MissingTranslation" ([@petitJAM](https://github.com/petitJAM))
4
+
5
+ # 0.0.10
6
+
7
+ - Fix `filtering_lines` parameter to also apply to when `inline_mode` is `false` ([@petitJAM](https://github.com/petitJAM))
8
+
9
+ # 0.0.9
10
+ - Add `filtering_lines` parameter, to show lint issues only on modified lines ([@ShivamPokhriyal](https://github.com/ShivamPokhriyal))
11
+
1
12
  # 0.0.8
2
13
  - Fix security issues ([@barbosa](https://github.com/barbosa))
3
14
  - Expose report message ([@adamstrange])(https://github.com/adamstrange))
data/Gemfile.lock CHANGED
@@ -1,50 +1,72 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- danger-android_lint (0.0.6)
4
+ danger-android_lint (0.0.11)
5
5
  danger-plugin-api (~> 1.0)
6
6
  oga
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- addressable (2.7.0)
11
+ addressable (2.8.0)
12
12
  public_suffix (>= 2.0.2, < 5.0)
13
13
  ansi (1.5.0)
14
- ast (2.4.0)
15
- claide (1.0.3)
14
+ ast (2.4.2)
15
+ claide (1.1.0)
16
16
  claide-plugins (0.9.2)
17
17
  cork
18
18
  nap
19
19
  open4 (~> 1.3)
20
- coderay (1.1.2)
20
+ coderay (1.1.3)
21
21
  colored2 (3.1.2)
22
22
  cork (0.3.0)
23
23
  colored2 (~> 3.1)
24
- danger (6.1.0)
24
+ danger (8.5.0)
25
25
  claide (~> 1.0)
26
26
  claide-plugins (>= 0.9.2)
27
27
  colored2 (~> 3.1)
28
28
  cork (~> 0.1)
29
- faraday (~> 0.9)
29
+ faraday (>= 0.9.0, < 2.0)
30
30
  faraday-http-cache (~> 2.0)
31
- git (~> 1.5)
32
- kramdown (~> 2.0)
31
+ git (~> 1.7)
32
+ kramdown (~> 2.3)
33
33
  kramdown-parser-gfm (~> 1.0)
34
34
  no_proxy_fix
35
35
  octokit (~> 4.7)
36
- terminal-table (~> 1)
36
+ terminal-table (>= 1, < 4)
37
37
  danger-plugin-api (1.0.0)
38
38
  danger (> 2.0)
39
- diff-lcs (1.3)
40
- faraday (0.17.1)
39
+ diff-lcs (1.4.4)
40
+ faraday (1.10.0)
41
+ faraday-em_http (~> 1.0)
42
+ faraday-em_synchrony (~> 1.0)
43
+ faraday-excon (~> 1.1)
44
+ faraday-httpclient (~> 1.0)
45
+ faraday-multipart (~> 1.0)
46
+ faraday-net_http (~> 1.0)
47
+ faraday-net_http_persistent (~> 1.0)
48
+ faraday-patron (~> 1.0)
49
+ faraday-rack (~> 1.0)
50
+ faraday-retry (~> 1.0)
51
+ ruby2_keywords (>= 0.0.4)
52
+ faraday-em_http (1.0.0)
53
+ faraday-em_synchrony (1.0.0)
54
+ faraday-excon (1.1.0)
55
+ faraday-http-cache (2.2.0)
56
+ faraday (>= 0.8)
57
+ faraday-httpclient (1.0.1)
58
+ faraday-multipart (1.0.3)
41
59
  multipart-post (>= 1.2, < 3)
42
- faraday-http-cache (2.0.0)
43
- faraday (~> 0.8)
44
- ffi (1.11.3)
45
- formatador (0.2.5)
46
- git (1.5.0)
47
- guard (2.16.1)
60
+ faraday-net_http (1.0.1)
61
+ faraday-net_http_persistent (1.2.0)
62
+ faraday-patron (1.0.0)
63
+ faraday-rack (1.0.0)
64
+ faraday-retry (1.0.3)
65
+ ffi (1.15.3)
66
+ formatador (0.3.0)
67
+ git (1.10.2)
68
+ rchardet (~> 1.8)
69
+ guard (2.17.0)
48
70
  formatador (>= 0.2.4)
49
71
  listen (>= 2.7, < 4.0)
50
72
  lumberjack (>= 1.0.12, < 2.0)
@@ -58,14 +80,15 @@ GEM
58
80
  guard (~> 2.1)
59
81
  guard-compat (~> 1.1)
60
82
  rspec (>= 2.99.0, < 4.0)
61
- kramdown (2.1.0)
83
+ kramdown (2.3.2)
84
+ rexml
62
85
  kramdown-parser-gfm (1.1.0)
63
86
  kramdown (~> 2.0)
64
87
  listen (3.0.7)
65
88
  rb-fsevent (>= 0.9.3)
66
89
  rb-inotify (>= 0.9.7)
67
- lumberjack (1.0.13)
68
- method_source (0.9.2)
90
+ lumberjack (1.2.8)
91
+ method_source (1.0.0)
69
92
  multipart-post (2.1.1)
70
93
  nap (1.1.0)
71
94
  nenv (0.3.0)
@@ -73,39 +96,42 @@ GEM
73
96
  notiffany (0.1.3)
74
97
  nenv (~> 0.1)
75
98
  shellany (~> 0.0)
76
- octokit (4.14.0)
99
+ octokit (4.22.0)
100
+ faraday (>= 0.9)
77
101
  sawyer (~> 0.8.0, >= 0.5.3)
78
- oga (3.0)
102
+ oga (3.3)
79
103
  ast
80
104
  ruby-ll (~> 2.1)
81
105
  open4 (1.3.4)
82
- parallel (1.19.1)
83
- parser (2.6.5.0)
84
- ast (~> 2.4.0)
85
- powerpack (0.1.2)
86
- pry (0.12.2)
87
- coderay (~> 1.1.0)
88
- method_source (~> 0.9.0)
89
- public_suffix (4.0.1)
106
+ parallel (1.20.1)
107
+ parser (2.7.2.0)
108
+ ast (~> 2.4.1)
109
+ powerpack (0.1.3)
110
+ pry (0.14.1)
111
+ coderay (~> 1.1)
112
+ method_source (~> 1.0)
113
+ public_suffix (4.0.6)
90
114
  rainbow (2.2.2)
91
115
  rake
92
- rake (10.5.0)
93
- rb-fsevent (0.10.3)
116
+ rake (13.0.3)
117
+ rb-fsevent (0.11.0)
94
118
  rb-inotify (0.10.1)
95
119
  ffi (~> 1.0)
96
- rspec (3.9.0)
97
- rspec-core (~> 3.9.0)
98
- rspec-expectations (~> 3.9.0)
99
- rspec-mocks (~> 3.9.0)
100
- rspec-core (3.9.0)
101
- rspec-support (~> 3.9.0)
102
- rspec-expectations (3.9.0)
120
+ rchardet (1.8.0)
121
+ rexml (3.2.5)
122
+ rspec (3.10.0)
123
+ rspec-core (~> 3.10.0)
124
+ rspec-expectations (~> 3.10.0)
125
+ rspec-mocks (~> 3.10.0)
126
+ rspec-core (3.10.1)
127
+ rspec-support (~> 3.10.0)
128
+ rspec-expectations (3.10.1)
103
129
  diff-lcs (>= 1.2.0, < 2.0)
104
- rspec-support (~> 3.9.0)
105
- rspec-mocks (3.9.0)
130
+ rspec-support (~> 3.10.0)
131
+ rspec-mocks (3.10.2)
106
132
  diff-lcs (>= 1.2.0, < 2.0)
107
- rspec-support (~> 3.9.0)
108
- rspec-support (3.9.0)
133
+ rspec-support (~> 3.10.0)
134
+ rspec-support (3.10.2)
109
135
  rubocop (0.49.1)
110
136
  parallel (~> 1.10)
111
137
  parser (>= 2.3.3.1, < 3.0)
@@ -116,31 +142,34 @@ GEM
116
142
  ruby-ll (2.1.2)
117
143
  ansi
118
144
  ast
119
- ruby-progressbar (1.10.1)
145
+ ruby-progressbar (1.11.0)
146
+ ruby2_keywords (0.0.5)
120
147
  sawyer (0.8.2)
121
148
  addressable (>= 2.3.5)
122
149
  faraday (> 0.8, < 2.0)
123
150
  shellany (0.0.1)
124
- terminal-table (1.8.0)
125
- unicode-display_width (~> 1.1, >= 1.1.1)
126
- thor (1.0.1)
127
- unicode-display_width (1.6.0)
128
- yard (0.9.20)
151
+ terminal-table (3.0.2)
152
+ unicode-display_width (>= 1.1.1, < 3)
153
+ thor (1.1.0)
154
+ unicode-display_width (1.7.0)
155
+ yard (0.9.26)
129
156
 
130
157
  PLATFORMS
131
- ruby
158
+ universal-darwin-20
159
+ x86_64-darwin-21
160
+ x86_64-linux
132
161
 
133
162
  DEPENDENCIES
134
- bundler (~> 1.3)
163
+ bundler (>= 2.2.10)
135
164
  danger-android_lint!
136
165
  guard (~> 2.14)
137
166
  guard-rspec (~> 4.7)
138
167
  listen (= 3.0.7)
139
168
  pry
140
- rake (~> 10.0)
169
+ rake (~> 13.0)
141
170
  rspec (~> 3.4)
142
171
  rubocop (~> 0.49.0)
143
172
  yard (~> 0.9.11)
144
173
 
145
174
  BUNDLED WITH
146
- 1.17.3
175
+ 2.2.22
data/README.md CHANGED
@@ -85,6 +85,24 @@ 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
+
95
+ #### Filter issues by ID
96
+
97
+ In some cases you may want to conditionally ignore specific lint warnings without fully disabling
98
+ them in your `lintOptions` configuration. To do that, you can pass a list of IDs to the
99
+ `excluding_issue_ids` parameter.
100
+
101
+ ```rb
102
+ android_lint.excluding_issue_ids = ["MissingTranslation"]
103
+ android_lint.lint
104
+ ```
105
+
88
106
  #### Make Danger comment directly on the line instead of printing a Markdown table (GitHub only)
89
107
 
90
108
  ```rb
data/Rakefile CHANGED
@@ -8,7 +8,7 @@ task default: :specs
8
8
 
9
9
  task :spec do
10
10
  Rake::Task['specs'].invoke
11
- Rake::Task['rubocop'].invoke
11
+ # Rake::Task['rubocop'].invoke
12
12
  Rake::Task['spec_docs'].invoke
13
13
  end
14
14
 
data/atlantis.yaml ADDED
@@ -0,0 +1,5 @@
1
+ version: 3
2
+ projects:
3
+ - dir: .
4
+ autoplan:
5
+ enabled: false
@@ -23,8 +23,8 @@ Gem::Specification.new do |spec|
23
23
  spec.add_runtime_dependency 'danger-plugin-api', '~> 1.0'
24
24
 
25
25
  # General ruby development
26
- spec.add_development_dependency 'bundler', '~> 1.3'
27
- spec.add_development_dependency 'rake', '~> 10.0'
26
+ spec.add_development_dependency 'bundler', '>= 2.2.10'
27
+ spec.add_development_dependency 'rake', '~> 13.0'
28
28
 
29
29
  # Testing support
30
30
  spec.add_development_dependency 'rspec', '~> 3.4'
@@ -1,3 +1,3 @@
1
1
  module AndroidLint
2
- VERSION = "0.0.8".freeze
2
+ VERSION = "0.0.11".freeze
3
3
  end
@@ -84,6 +84,12 @@ module Danger
84
84
  # Only show messages within changed files.
85
85
  attr_accessor :filtering
86
86
 
87
+ # Only show messages for the modified lines.
88
+ attr_accessor :filtering_lines
89
+
90
+ # Only show messages for issues not in this list.
91
+ attr_accessor :excluding_issue_ids
92
+
87
93
  # Calls lint task of your gradle project.
88
94
  # It fails if `gradlew` cannot be found inside current directory.
89
95
  # It fails if `severity` level is not a valid option.
@@ -113,7 +119,7 @@ module Danger
113
119
  filtered_issues = filter_issues_by_severity(issues)
114
120
 
115
121
  message = ""
116
-
122
+
117
123
  if inline_mode
118
124
  # Report with inline comment
119
125
  send_inline_comment(filtered_issues)
@@ -121,7 +127,7 @@ module Danger
121
127
  message = message_for_issues(filtered_issues)
122
128
  markdown("### AndroidLint found issues\n\n" + message) unless message.to_s.empty?
123
129
  end
124
-
130
+
125
131
  message
126
132
  end
127
133
 
@@ -164,11 +170,17 @@ module Danger
164
170
  message = ""
165
171
 
166
172
  results.each do |r|
173
+ issue_id = r.get('id')
174
+ next if excluding_issue_ids && excluding_issue_ids.include?(issue_id)
167
175
  location = r.xpath('location').first
168
176
  filename = location.get('file').gsub(dir, "")
169
- next unless !filtering || (target_files.include? filename)
170
- line = location.get('line') || 'N/A'
177
+ next unless (!filtering && !filtering_lines) || (target_files.include? filename)
178
+ line = location.get('line').to_i || 'N/A'
171
179
  reason = r.get('message')
180
+ if filtering_lines
181
+ added_lines = parse_added_line_numbers(git.diff[filename].patch)
182
+ next unless added_lines.include? line
183
+ end
172
184
  count = count + 1
173
185
  message << "`#{filename}` | #{line} | #{reason} \n"
174
186
  end
@@ -186,7 +198,7 @@ module Danger
186
198
  # Send inline comment with danger's warn or fail method
187
199
  #
188
200
  # @return [void]
189
- def send_inline_comment (issues)
201
+ def send_inline_comment(issues)
190
202
  target_files = (git.modified_files - git.deleted_files) + git.added_files
191
203
  dir = "#{Dir.pwd}/"
192
204
  SEVERITY_LEVELS.reverse.each do |level|
@@ -195,13 +207,42 @@ module Danger
195
207
  filtered.each do |r|
196
208
  location = r.xpath('location').first
197
209
  filename = location.get('file').gsub(dir, "")
198
- next unless !filtering || (target_files.include? filename)
210
+ next unless (!filtering && !filtering_lines) || (target_files.include? filename)
199
211
  line = (location.get('line') || "0").to_i
212
+ if filtering_lines
213
+ added_lines = parse_added_line_numbers(git.diff[filename].patch)
214
+ next unless added_lines.include? line
215
+ end
200
216
  send(level === "Warning" ? "warn" : "fail", r.get('message'), file: filename, line: line)
201
217
  end
202
218
  end
203
219
  end
204
220
 
221
+ # Parses git diff of a file and retuns an array of added line numbers.
222
+ def parse_added_line_numbers(diff)
223
+ current_line_number = nil
224
+ added_line_numbers = []
225
+ diff_lines = diff.strip.split("\n")
226
+ diff_lines.each_with_index do |line, index|
227
+ if m = /\+(\d+)(?:,\d+)? @@/.match(line)
228
+ # (e.g. @@ -32,10 +32,7 @@)
229
+ current_line_number = Integer(m[1])
230
+ else
231
+ if !current_line_number.nil?
232
+ if line.start_with?('+')
233
+ # added line
234
+ added_line_numbers.push current_line_number
235
+ current_line_number += 1
236
+ elsif !line.start_with?('-')
237
+ # unmodified line
238
+ current_line_number += 1
239
+ end
240
+ end
241
+ end
242
+ end
243
+ added_line_numbers
244
+ end
245
+
205
246
  def gradlew_exists?
206
247
  `ls gradlew`.strip.empty? == false
207
248
  end
@@ -146,7 +146,7 @@ module Danger
146
146
  expect(markdown).to be_nil
147
147
  end
148
148
 
149
- it 'Doesn`t print anything if no errors were found' do
149
+ it 'Doesn`t print anything if no errors were found at the set minimum severity level' do
150
150
  fake_result = File.open("spec/fixtures/lint-result-without-fatal.xml")
151
151
  allow(File).to receive(:open).with(@android_lint.report_file).and_return(fake_result)
152
152
 
@@ -188,8 +188,96 @@ module Danger
188
188
  expect(warn).not_to include("Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead")
189
189
  end
190
190
 
191
- end
191
+ describe 'excluding_issue_ids' do
192
+ before do
193
+ fake_result = File.open("spec/fixtures/lint-result-with-everything.xml")
194
+ allow(File).to receive(:open).with(@android_lint.report_file).and_return(fake_result)
195
+ end
196
+
197
+ it 'Does not print ignored issues' do
198
+ @android_lint.excluding_issue_ids = ["MissingTranslation", "RtlEnabled"]
199
+ @android_lint.lint
200
+
201
+ markdown = @android_lint.status_report[:markdowns].first.message
202
+ expect(markdown).to include("Implicitly using the default locale")
203
+ expect(markdown).not_to include("is not translated in")
204
+ expect(markdown).not_to include("The project references RTL attributes, but does not explicitly enable or disable RTL support with `android:supportsRtl` in the manifest")
205
+ end
206
+ end
192
207
 
208
+ describe "for a modified file" do
209
+ before do
210
+ allow(Dir).to receive(:pwd).and_return("/Users/shivampokhriyal/Documents/projects/Commcare/commcare-android")
211
+
212
+ allow(@android_lint.git).to receive(:modified_files).and_return([
213
+ "app/build.gradle",
214
+ ])
215
+
216
+ fake_patch = File.read("spec/fixtures/pr-diff.diff")
217
+ diff = [OpenStruct.new(type: "modified", path: "app/build.gradle")]
218
+ allow(@android_lint.git).to receive(:diff).and_return(diff)
219
+ diff_for_file = OpenStruct.new(insertions: 3)
220
+ allow(diff).to receive(:[]).with("app/build.gradle").and_return(diff_for_file)
221
+ allow(diff_for_file).to receive(:patch).and_return(fake_patch)
222
+
223
+ fake_result = File.open("spec/fixtures/lint-result-for-pr.xml")
224
+ allow(File).to receive(:open).with(@android_lint.report_file).and_return(fake_result)
225
+ end
226
+
227
+ context 'when inline_mode: true' do
228
+ it 'with filtering_lines, only show issues in modified lines' do
229
+ @android_lint.filtering_lines = true
230
+ @android_lint.lint inline_mode: true
231
+
232
+ error = @android_lint.status_report[:errors]
233
+ expect(error).to include("fake message three")
234
+
235
+ expect(error).not_to include("fake message one")
236
+ expect(error).not_to include("fake message two")
237
+ expect(error).not_to include("fake message in unmodified file")
238
+ end
239
+
240
+ it 'with filtering, show all issues in modified files' do
241
+ @android_lint.filtering = true
242
+ @android_lint.lint inline_mode: true
243
+
244
+ error = @android_lint.status_report[:errors]
245
+ expect(error).to include("fake message one")
246
+ expect(error).to include("fake message two")
247
+ expect(error).to include("fake message three")
248
+
249
+ expect(error).not_to include("fake message in unmodified file")
250
+ end
251
+ end
252
+
253
+ context 'when inline_mode: false' do
254
+ it 'with filtering_lines, only show issues in modified lines' do
255
+ @android_lint.filtering_lines = true
256
+ @android_lint.lint inline_mode: false
257
+
258
+ puts @android_lint.status_report[:markdowns]
259
+ message = @android_lint.status_report[:markdowns][0].to_s
260
+ expect(message).to include("fake message three")
261
+
262
+ expect(message).not_to include("fake message one")
263
+ expect(message).not_to include("fake message two")
264
+ expect(message).not_to include("fake message in unmodified file")
265
+ end
266
+
267
+ it 'with filtering, show all issues in modified files' do
268
+ @android_lint.filtering = true
269
+ @android_lint.lint inline_mode: false
270
+
271
+ message = @android_lint.status_report[:markdowns][0].to_s
272
+ expect(message).to include("fake message one")
273
+ expect(message).to include("fake message two")
274
+ expect(message).to include("fake message three")
275
+
276
+ expect(message).not_to include("fake message in unmodified file")
277
+ end
278
+ end
279
+ end
280
+ end
193
281
  end
194
282
  end
195
283
  end
@@ -0,0 +1,62 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <issues format="5" by="lint 4.0.0">
3
+ <issue
4
+ id="DuplicatePlatformClasses"
5
+ severity="Error"
6
+ message="fake message one"
7
+ category="Correctness"
8
+ priority="8"
9
+ summary="Duplicate Platform Classes"
10
+ explanation="There are a number of libraries that duplicate not just functionality of the Android platform but using the exact same class names as the ones provided in Android -- for example the apache http classes. This can lead to unexpected crashes.&#xA;&#xA;To solve this, you need to either find a newer version of the library which no longer has this problem, or to repackage the library (and all of its dependencies) using something like the `jarjar` tool, or finally, rewriting the code to use different APIs (for example, for http code, consider using `HttpUrlConnection` or a library like `okhttp`).">
11
+ <location
12
+ file="/Users/shivampokhriyal/Documents/projects/Commcare/commcare-android/app/build.gradle"/>
13
+ </issue>
14
+
15
+ <issue
16
+ id="DuplicatePlatformClasses"
17
+ severity="Error"
18
+ message="fake message two"
19
+ category="Correctness"
20
+ priority="8"
21
+ summary="Duplicate Platform Classes"
22
+ explanation="There are a number of libraries that duplicate not just functionality of the Android platform but using the exact same class names as the ones provided in Android -- for example the apache http classes. This can lead to unexpected crashes.&#xA;&#xA;To solve this, you need to either find a newer version of the library which no longer has this problem, or to repackage the library (and all of its dependencies) using something like the `jarjar` tool, or finally, rewriting the code to use different APIs (for example, for http code, consider using `HttpUrlConnection` or a library like `okhttp`)."
23
+ errorLine1=" testImplementation &apos;org.json:json:20140107&apos;"
24
+ errorLine2=" ~~~~~~~~~~~~~">
25
+ <location
26
+ file="/Users/shivampokhriyal/Documents/projects/Commcare/commcare-android/app/build.gradle"
27
+ line="52"
28
+ column="25"/>
29
+ </issue>
30
+
31
+ <issue
32
+ id="FakeId"
33
+ severity="Error"
34
+ message="fake message three"
35
+ category="Correctness"
36
+ priority="8"
37
+ summary="Fake summary"
38
+ explanation="Fake explanation."
39
+ errorLine1="// debugImplementation because LeakCanary should only run in debug builds."
40
+ errorLine2=" ~~~~~~~~~~~~~">
41
+ <location
42
+ file="/Users/shivampokhriyal/Documents/projects/Commcare/commcare-android/app/build.gradle"
43
+ line="36"
44
+ column="10"/>
45
+ </issue>
46
+
47
+ <issue
48
+ id="2"
49
+ severity="Error"
50
+ message="fake message in unmodified file"
51
+ category="Correctness"
52
+ priority="8"
53
+ summary="Fake summary"
54
+ explanation="Fake explanation."
55
+ errorLine1="// debugImplementation because LeakCanary should only run in debug builds."
56
+ errorLine2=" ~~~~~~~~~~~~~">
57
+ <location
58
+ file="/Users/shivampokhriyal/Documents/projects/Commcare/commcare-android/app/AndroidManifest.xml"
59
+ line="36"
60
+ column="10"/>
61
+ </issue>
62
+ </issues>
@@ -61,4 +61,34 @@ If you want the methods to just perform ASCII replacement, for example to conver
61
61
  column="16"/>
62
62
  </issue>
63
63
 
64
+ <issue
65
+ id="MissingTranslation"
66
+ severity="Error"
67
+ message="&quot;someStringResource&quot; is not translated in &quot;de&quot; (German), &quot;fi&quot; (Finnish), &quot;ru&quot; (Russian), &quot;sv&quot; (Swedish), &q
68
+ uot;ko&quot; (Korean), &quot;pt&quot; (Portuguese), &quot;el&quot; (Greek), &quot;en&quot; (English), &quot;it&quot; (Italian), &quot;fr&quot; (French), &quot;es&quot; (Spanish), &quot;cs&q
69
+ uot; (Czech), &quot;nb&quot; (Norwegian Bokmål), &quot;ja&quot; (Japanese), &quot;da&quot; (Danish), &quot;ca&quot; (Catalan), &quot;nl&quot; (Dutch)"
70
+ category="Correctness:Messages"
71
+ priority="8"
72
+ summary="Incomplete translation"
73
+ explanation="If an application has more than one locale, then all the strings declared in one language should also be translated in all other languages.&#xA;&#xA;If the string should **not** be translated, you can add the attribute `translatable=&quot;false&quot;` on the `&lt;string>` element, or you can define all your non-translatable strings in a resource file called `donottranslate.xml`. Or, you can ignore the issue with a `tools:ignore=&quot;MissingTranslation&quot;` attribute.&#xA;&#xA;You can tell lint (and other tools) which language is the default language in your `res/values/` folder by specifying `tools:locale=&quot;languageCode&quot;` for the root `&lt;resources>` element in your resource file. (The `tools` prefix refers to the namespace declaration `http://schemas.android.com/tools`.)"
74
+ errorLine1=" &lt;string name=&quot;someStringResource&quot;>Hello this is a string resource.&lt;/string>"
75
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
76
+ <location
77
+ file="/Users/gustavo/Developer/app-android/app/src/main/res/values/strings.xml"
78
+ line="10"
79
+ column="13"/>
80
+ </issue>
81
+
82
+ <issue
83
+ id="RtlEnabled"
84
+ severity="Warning"
85
+ message="The project references RTL attributes, but does not explicitly enable or disable RTL support with `android:supportsRtl` in the manifest"
86
+ category="Internationalization:Bidirectional Text"
87
+ priority="3"
88
+ summary="Using RTL attributes without enabling RTL support"
89
+ explanation="To enable right-to-left support, when running on API 17 and higher, you must set the `android:supportsRtl` attribute in the manifest `&lt;application>` element.&#xA;&#xA;If you have started adding RTL attributes, but have not yet finished the migration, you can set the attribute to false to satisfy this lint check.">
90
+ <location
91
+ file="/Users/gustavo/Developer/app-android/app/src/main/AndroidManifest.xml"/>
92
+ </issue>
93
+
64
94
  </issues>
@@ -0,0 +1,14 @@
1
+ diff --git a/app/build.gradle b/app/build.gradle
2
+ index 6dcc647b8..a1365bd75 100644
3
+ --- a/app/build.gradle
4
+ +++ b/app/build.gradle
5
+ @@ -33,6 +33,9 @@ configurations {
6
+ }
7
+
8
+ dependencies {
9
+ + // debugImplementation because LeakCanary should only run in debug builds.
10
+ + debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.7'
11
+ +
12
+ testImplementation 'junit:junit:4.12'
13
+ testImplementation('org.robolectric:robolectric:4.3.1') {
14
+ exclude(group: 'org.bouncycastle', module: 'bcprov-jdk15on')
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.8
4
+ version: 0.0.11
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: 2019-12-24 00:00:00.000000000 Z
11
+ date: 2022-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oga
@@ -42,30 +42,30 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.3'
47
+ version: 2.2.10
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '1.3'
54
+ version: 2.2.10
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '13.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '13.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -171,6 +171,7 @@ executables: []
171
171
  extensions: []
172
172
  extra_rdoc_files: []
173
173
  files:
174
+ - ".circleci/config.yml"
174
175
  - ".github/CODEOWNERS"
175
176
  - ".gitignore"
176
177
  - ".ruby-version"
@@ -181,6 +182,7 @@ files:
181
182
  - LICENSE.txt
182
183
  - README.md
183
184
  - Rakefile
185
+ - atlantis.yaml
184
186
  - danger-android_lint.gemspec
185
187
  - lib/android_lint/gem_version.rb
186
188
  - lib/android_lint/plugin.rb
@@ -188,15 +190,17 @@ files:
188
190
  - lib/danger_plugin.rb
189
191
  - spec/android_lint_spec.rb
190
192
  - spec/fixtures/lint-result-empty.xml
193
+ - spec/fixtures/lint-result-for-pr.xml
191
194
  - spec/fixtures/lint-result-with-everything.xml
192
195
  - spec/fixtures/lint-result-with-special-chars.xml
193
196
  - spec/fixtures/lint-result-without-fatal.xml
197
+ - spec/fixtures/pr-diff.diff
194
198
  - spec/spec_helper.rb
195
199
  homepage: https://github.com/loadsmart/danger-android_lint
196
200
  licenses:
197
201
  - MIT
198
202
  metadata: {}
199
- post_install_message:
203
+ post_install_message:
200
204
  rdoc_options: []
201
205
  require_paths:
202
206
  - lib
@@ -211,16 +215,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
211
215
  - !ruby/object:Gem::Version
212
216
  version: '0'
213
217
  requirements: []
214
- rubyforge_project:
215
- rubygems_version: 2.5.2.1
216
- signing_key:
218
+ rubygems_version: 3.2.22
219
+ signing_key:
217
220
  specification_version: 4
218
221
  summary: Lint files of a gradle based Android project. This is done using the Android's
219
222
  Lint tool. Results are passed out as tables in markdown.
220
223
  test_files:
221
224
  - spec/android_lint_spec.rb
222
225
  - spec/fixtures/lint-result-empty.xml
226
+ - spec/fixtures/lint-result-for-pr.xml
223
227
  - spec/fixtures/lint-result-with-everything.xml
224
228
  - spec/fixtures/lint-result-with-special-chars.xml
225
229
  - spec/fixtures/lint-result-without-fatal.xml
230
+ - spec/fixtures/pr-diff.diff
226
231
  - spec/spec_helper.rb