danger-warnings_next_generation 0.1.1 → 0.1.2

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
2
  SHA256:
3
- metadata.gz: eba6ffd3c7485975a270122fa89b748f08882d7616cc5cee693001789f298a99
4
- data.tar.gz: 306a28d2ca2cf49b11c0e43d958380be89ac59bd359b00d4050e2ba3fe5a539e
3
+ metadata.gz: ca8908ac2dbb49d19073752e2f3080d18619db630da9458e4f3cf5754c0e5e10
4
+ data.tar.gz: 46682178b08d1c87e250bbe9a8910603efcea9f23abb5d3f6ca7ddb31fc66be4
5
5
  SHA512:
6
- metadata.gz: 0d16ae24773329a9ece05fa147eaa68d1cd2cb23d220163a5e67c307d771d9b3db4ca33baef4aab556014222e7763a466204c83030eccbd264972b4ee5b861e7
7
- data.tar.gz: f5bb67adfb5df821b6dcffd163a6664ce1ed7c1e63e752c0c45141a90049868556944285150d040c90c6e04c2fb80a1347c7fb6cf0b1f4aab94f1f98b443bb74
6
+ metadata.gz: 42b11cee07c972faacb608b1dac054dc2f7cec481b693179e74e139045cf5e8f8ae6d874c8b6fa55e0b49be6291856950bea4aaef714dd2142dcb414d75f891a
7
+ data.tar.gz: 48c2a489c9681d53ca4fe04c3382f955583ab26fc6dc144dc431f56056f3ab6bcf12868f577a709ea74db222f3f55dc7e76aa632db7f961c0cee05155309b137
data/CHANGELOG.md CHANGED
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.1.2] - 2019-5-27
8
+ ### Fixed
9
+ - Do not post empty tool report
10
+ - Only include entries in tool report where basename of file is under changed files
11
+
7
12
  ## [0.1.1] - 2019-5-17
8
13
  ### Fixed
9
14
  - Remove line breaks from message to avoid broken tables.
data/README.md CHANGED
@@ -94,7 +94,7 @@ This plugin is inspired and works only with the jenkins [warnings-ng-plugin](htt
94
94
  |Android Lint Warnings|10|0|3|
95
95
  |PMD Warnings|:star:|0|0|
96
96
  |Detekt Warnings|10|5|5|
97
- |Checkstyle|:star:|0|3|
97
+ |Checkstyle Warnings|:star:|0|3|
98
98
 
99
99
  ### Java Warnings
100
100
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WarningsNextGeneration
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2"
5
5
  end
@@ -22,6 +22,10 @@ module WarningsNextGeneration
22
22
  end
23
23
  end
24
24
 
25
+ def size
26
+ @lines.length
27
+ end
28
+
25
29
  def detail_header(*args)
26
30
  args.each do |item|
27
31
  @header << "#{item}#{COLUMN_SEPARATOR}"
@@ -70,17 +70,15 @@ module Danger
70
70
  url = tool["latestUrl"]
71
71
  id = tool["id"]
72
72
 
73
- if use_include_option?(options)
74
- next unless tool_ids.include?(id)
75
- end
73
+ next if use_include_option?(options) && !tool_ids.include?(id)
74
+
76
75
  overview = overview_result(url)
77
76
  entry_count += 1
78
77
  overview_entry(overview_table, name, overview)
79
78
  end
80
79
 
81
- if use_include_option?(options)
82
- return if entry_count.zero?
83
- end
80
+ return if use_include_option?(options) && entry_count.zero?
81
+
84
82
  markdown("#{WNG_OVERVIEW_TITLE}\n\n#{overview_table.to_markdown}")
85
83
  end
86
84
 
@@ -99,9 +97,8 @@ module Danger
99
97
  url = tool["latestUrl"]
100
98
  id = tool["id"]
101
99
 
102
- if use_include_option?(options)
103
- next unless tool_ids.include?(id)
104
- end
100
+ next if use_include_option?(options) && !tool_ids.include?(id)
101
+
105
102
  if inline?(options) && check_baseline(options)
106
103
  inline_report(url, baseline(options))
107
104
  else
@@ -168,11 +165,17 @@ module Danger
168
165
  file = File.basename(issue["fileName"])
169
166
  line = issue["lineStart"]
170
167
  message = issue["message"].gsub("\n", " ")
168
+
169
+ next unless basename_in_changeset?(file)
170
+
171
171
  table.line(severity, "#{file}:#{line}", "#{category_type(issue)} #{message}")
172
172
  end
173
- content = +"### #{name}\n\n"
174
- content << table.to_markdown
175
- markdown(content)
173
+
174
+ unless table.size.zero?
175
+ content = +"### #{name}\n\n"
176
+ content << table.to_markdown
177
+ markdown(content)
178
+ end
176
179
  end
177
180
 
178
181
  def inline_report(url, baseline)
@@ -223,6 +226,16 @@ module Danger
223
226
  target_files.include?(file)
224
227
  end
225
228
 
229
+ def basename_in_changeset?(file)
230
+ result = false
231
+ target_files.each do |change|
232
+ break if result
233
+
234
+ result = change.include?(File.basename(file))
235
+ end
236
+ result
237
+ end
238
+
226
239
  def target_files
227
240
  @target_files ||= git.modified_files + git.added_files
228
241
  end
File without changes
@@ -0,0 +1,24 @@
1
+ {
2
+ "_class": "io.jenkins.plugins.analysis.core.restapi.ReportApi",
3
+ "issues": [
4
+ {
5
+ "baseName": "ProductDetailPageFragment.kt",
6
+ "category": "Deprecation",
7
+ "columnEnd": 54,
8
+ "columnStart": 54,
9
+ "description": "",
10
+ "fileName": "/var/lib/jenkins/workspace/projectname/b2b-app-android-analyze/repository/app/src/main/java/com/projectname/b2bshop/fragment/ProductDetailPageFragment.kt",
11
+ "fingerprint": "07D91BE07253C0864B9B4F05F0308B28",
12
+ "lineEnd": 135,
13
+ "lineStart": 135,
14
+ "message": "'getColor(Int): Int' is deprecated. Deprecated in Java",
15
+ "moduleName": "",
16
+ "origin": "java",
17
+ "packageName": "-",
18
+ "reference": "5",
19
+ "severity": "NORMAL",
20
+ "type": "-"
21
+ }
22
+ ],
23
+ "size": 1
24
+ }
@@ -14,6 +14,7 @@ module Danger
14
14
  before do
15
15
  @dangerfile = testing_dangerfile
16
16
  @my_plugin = @dangerfile.warnings_next_generation
17
+ target_files_return_java_all
17
18
  end
18
19
 
19
20
  describe "overview_report" do
@@ -129,7 +130,7 @@ module Danger
129
130
  describe "tools_report" do
130
131
  it "list all entries" do
131
132
  aggregation_return("/assets/aggregation_single.json")
132
- details_return("/assets/java_all.json")
133
+ details_return("/assets/java_detail_all.json")
133
134
  @my_plugin.tools_report
134
135
 
135
136
  markdowns = @dangerfile.status_report[:markdowns]
@@ -141,7 +142,7 @@ module Danger
141
142
 
142
143
  it "no configuration list all warnings reports" do
143
144
  aggregation_return("/assets/aggregation.json")
144
- details_return("/assets/java_all.json")
145
+ details_return("/assets/java_detail_all.json")
145
146
  @my_plugin.tools_report
146
147
 
147
148
  markdowns = @dangerfile.status_report[:markdowns]
@@ -150,7 +151,7 @@ module Danger
150
151
 
151
152
  it "single include adds table" do
152
153
  aggregation_return("/assets/aggregation.json")
153
- details_return("/assets/java_all.json")
154
+ details_return("/assets/java_detail_all.json")
154
155
  @my_plugin.tools_report(include: ["java"])
155
156
 
156
157
  markdowns = @dangerfile.status_report[:markdowns]
@@ -160,7 +161,7 @@ module Danger
160
161
 
161
162
  it "multiple include adds table for each" do
162
163
  aggregation_return("/assets/aggregation.json")
163
- details_return("/assets/java_all.json")
164
+ details_return("/assets/java_detail_all.json")
164
165
  @my_plugin.tools_report(include: %w(java pmd))
165
166
 
166
167
  markdowns = @dangerfile.status_report[:markdowns]
@@ -172,7 +173,7 @@ module Danger
172
173
 
173
174
  it "empty includes add no overview" do
174
175
  aggregation_return("/assets/aggregation.json")
175
- details_return("/assets/java_all.json")
176
+ details_return("/assets/java_detail_all.json")
176
177
  @my_plugin.tools_report(include: [])
177
178
 
178
179
  markdowns = @dangerfile.status_report[:markdowns]
@@ -181,7 +182,7 @@ module Danger
181
182
 
182
183
  it "wrong includes add no overview" do
183
184
  aggregation_return("/assets/aggregation.json")
184
- details_return("/assets/java_all.json")
185
+ details_return("/assets/java_detail_all.json")
185
186
  @my_plugin.tools_report(include: ["not_existing"])
186
187
 
187
188
  markdowns = @dangerfile.status_report[:markdowns]
@@ -190,14 +191,13 @@ module Danger
190
191
 
191
192
  it "inline missing baseline raises error" do
192
193
  aggregation_return("/assets/aggregation_single.json")
193
- details_return("/assets/java_all.json")
194
+ details_return("/assets/java_detail_all.json")
194
195
  expect { @my_plugin.tools_report(inline: true) }.to raise_error(/set 'baseline'/)
195
196
  end
196
197
 
197
198
  it "creates inline comments" do
198
199
  aggregation_return("/assets/aggregation_single.json")
199
- details_return("/assets/java_all.json")
200
- target_files_return_java_all
200
+ details_return("/assets/java_detail_all.json")
201
201
  @my_plugin.tools_report(inline: true, baseline: JAVA_ALL_BASELINE)
202
202
 
203
203
  markdowns = @dangerfile.status_report[:markdowns]
@@ -209,8 +209,7 @@ module Danger
209
209
 
210
210
  it "inline comments remove baseline" do
211
211
  aggregation_return("/assets/aggregation_single.json")
212
- details_return("/assets/java_all.json")
213
- target_files_return_java_all
212
+ details_return("/assets/java_detail_all.json")
214
213
  @my_plugin.tools_report(inline: true, baseline: JAVA_ALL_BASELINE)
215
214
 
216
215
  message = @dangerfile.violation_report[:messages].first
@@ -224,6 +223,7 @@ module Danger
224
223
  issue = issues["issues"].first
225
224
  expect(issue["message"]).to include("\n")
226
225
  details_return_issue(issues)
226
+ target_files_return_manifest
227
227
  @my_plugin.tools_report
228
228
 
229
229
  markdowns = @dangerfile.status_report[:markdowns]
@@ -238,6 +238,7 @@ module Danger
238
238
  issue["category"] = "TEST_CATEGORY"
239
239
  issue["type"] = "TEST_TYPE"
240
240
  details_return_issue(issues)
241
+ target_files_return_manifest
241
242
  @my_plugin.tools_report
242
243
 
243
244
  markdowns = @dangerfile.status_report[:markdowns]
@@ -252,6 +253,7 @@ module Danger
252
253
  issue["category"] = "TEST_CATEGORY"
253
254
  issue["type"] = ""
254
255
  details_return_issue(issues)
256
+ target_files_return_manifest
255
257
  @my_plugin.tools_report
256
258
 
257
259
  markdowns = @dangerfile.status_report[:markdowns]
@@ -266,6 +268,7 @@ module Danger
266
268
  issue["category"] = "TEST_CATEGORY"
267
269
  issue["type"] = nil
268
270
  details_return_issue(issues)
271
+ target_files_return_manifest
269
272
  @my_plugin.tools_report
270
273
 
271
274
  markdowns = @dangerfile.status_report[:markdowns]
@@ -280,6 +283,7 @@ module Danger
280
283
  issue["category"] = ""
281
284
  issue["type"] = "TEST_TYPE"
282
285
  details_return_issue(issues)
286
+ target_files_return_manifest
283
287
  @my_plugin.tools_report
284
288
 
285
289
  markdowns = @dangerfile.status_report[:markdowns]
@@ -294,6 +298,7 @@ module Danger
294
298
  issue["category"] = nil
295
299
  issue["type"] = "TEST_TYPE"
296
300
  details_return_issue(issues)
301
+ target_files_return_manifest
297
302
  @my_plugin.tools_report
298
303
 
299
304
  markdowns = @dangerfile.status_report[:markdowns]
@@ -308,6 +313,7 @@ module Danger
308
313
  issue["category"] = ""
309
314
  issue["type"] = ""
310
315
  details_return_issue(issues)
316
+ target_files_return_manifest
311
317
  @my_plugin.tools_report
312
318
 
313
319
  markdowns = @dangerfile.status_report[:markdowns]
@@ -323,6 +329,7 @@ module Danger
323
329
  issue["category"] = nil
324
330
  issue["type"] = nil
325
331
  details_return_issue(issues)
332
+ target_files_return_manifest
326
333
  @my_plugin.tools_report
327
334
 
328
335
  markdowns = @dangerfile.status_report[:markdowns]
@@ -330,6 +337,16 @@ module Danger
330
337
  expect(markdowns.first.message).not_to include("[")
331
338
  expect(markdowns.first.message).not_to include("]")
332
339
  end
340
+
341
+ it "no changed files match does not add report" do
342
+ aggregation_return("/assets/aggregation_single.json")
343
+ details_return("/assets/java_detail_one.json")
344
+ target_files_return(["Unmatched.java"])
345
+ @my_plugin.tools_report
346
+
347
+ markdowns = @dangerfile.status_report[:markdowns]
348
+ expect(markdowns.length).to be(0)
349
+ end
333
350
  end
334
351
  end
335
352
  end
@@ -385,8 +402,16 @@ def android_lint_issues
385
402
  end
386
403
 
387
404
  def target_files_return_java_all
388
- @my_plugin.stubs(:target_files).returns(["app/src/main/java/com/projectname/b2bshop/fragment/gallery/ImageGalleryFragment.kt",
389
- "app/src/main/java/com/projectname/b2bshop/webservice/requestqueue/RequestQueue.java",
390
- "app/src/main/java/com/projectname/b2bshop/webservice/requestqueue/RequestQueueImpl.java",
391
- "app/src/main/java/com/projectname/b2bshop/fragment/ProductDetailPageFragment.kt"])
405
+ target_files_return(["app/src/main/java/com/projectname/b2bshop/fragment/gallery/ImageGalleryFragment.kt",
406
+ "app/src/main/java/com/projectname/b2bshop/webservice/requestqueue/RequestQueue.java",
407
+ "app/src/main/java/com/projectname/b2bshop/webservice/requestqueue/RequestQueueImpl.java",
408
+ "app/src/main/java/com/projectname/b2bshop/fragment/ProductDetailPageFragment.kt"])
409
+ end
410
+
411
+ def target_files_return_manifest
412
+ target_files_return(["AndroidManifest.xml"])
413
+ end
414
+
415
+ def target_files_return(list)
416
+ @my_plugin.stubs(:target_files).returns(list)
392
417
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danger-warnings_next_generation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Schwamberger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-17 00:00:00.000000000 Z
11
+ date: 2019-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger-plugin-api
@@ -182,7 +182,8 @@ files:
182
182
  - spec/assets/example/overview_detekt.json
183
183
  - spec/assets/example/overview_pmd.json
184
184
  - spec/assets/java.json
185
- - spec/assets/java_all.json
185
+ - spec/assets/java_detail_all.json
186
+ - spec/assets/java_detail_one.json
186
187
  - spec/assets/java_zero.json
187
188
  - spec/assets/java_zero_new.json
188
189
  - spec/spec_helper.rb
@@ -221,7 +222,8 @@ test_files:
221
222
  - spec/assets/example/overview_detekt.json
222
223
  - spec/assets/example/overview_pmd.json
223
224
  - spec/assets/java.json
224
- - spec/assets/java_all.json
225
+ - spec/assets/java_detail_all.json
226
+ - spec/assets/java_detail_one.json
225
227
  - spec/assets/java_zero.json
226
228
  - spec/assets/java_zero_new.json
227
229
  - spec/spec_helper.rb