danger-warnings_next_generation 0.1.5 → 1.0.0

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: d88f812549e81bc81f9da5038e5e821e9accd66317241b6d064cf60751b99048
4
- data.tar.gz: 9c44904b68e5094ead295cd7ad8184a553bd898c01680f7c8716a084afe57fa3
3
+ metadata.gz: 5d83fdf1131f573ea07ccd0c01d37e2a7c95f8519b4c890425251c821d0e5536
4
+ data.tar.gz: f4ecd4575df5bd28ba7fc11d85e36463ed57a05dbed5c030d90011de72dc1ec7
5
5
  SHA512:
6
- metadata.gz: 8a3bfc08322aa9a3507b70db3f88333bbbbcdc54fd60e8b2ad7278adfd063bbe5f7f162da736a7085ae23545cb11c6cb08b588282d4dd472a9cb0a464038cdef
7
- data.tar.gz: 28a702a71425ed522d63dedd01dffb9f48e340b730d3b5ccb11f80e18e27e3925271386bbec78a5f79ef9ee2d01f22e8fc34941c5b5f13eec1576d801c203cac
6
+ metadata.gz: 5c02b8bbd0b54a1881e3a71e53756217f3eeff02407136c5e75f716d9ccb10011fb7f9ebd678537425c5726c248ff7fd390f0298ff808b0b09cb32a4f52b4d70
7
+ data.tar.gz: 9dd75d23bfd076882e38fab6d8e816f6acc2a018a243894f18bf944d7594b934e672e1c9412c092f1ca5000ab23f28e3c561e74f5caaafaa78d562cf1a974357
@@ -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
+ ## [1.0.0] - 2019-6-28
8
+ ### Added
9
+ - Option `inline_threshold`
10
+ - Option `table_threshold`
11
+
7
12
  ## [0.1.5] - 2019-6-02
8
13
  ### Changed
9
14
  - Add tool name to inline comment
data/README.md CHANGED
@@ -185,3 +185,34 @@ warnings_next_generation.overview_report(
185
185
  )
186
186
  </pre>
187
187
  </blockquote>
188
+
189
+ ## Comments threshold
190
+
191
+ You can switch from inline comments to table comment if all issues >= threshold or to warnings if >= table threshold
192
+
193
+ <blockquote>Switch to table comment if combined issues size >= 15
194
+ <pre>
195
+ warnings_next_generation.report(
196
+ inline: true
197
+ inline_threshold: 15
198
+ )
199
+ </pre>
200
+ </blockquote>
201
+
202
+ <blockquote>Switch to table comment if combined issues size >= 200
203
+ <pre>
204
+ warnings_next_generation.report(
205
+ table_threshold: 200
206
+ )
207
+ </pre>
208
+ </blockquote>
209
+
210
+ <blockquote>Switch from inline comment to table, and automatically to warning.
211
+ <pre>
212
+ warnings_next_generation.report(
213
+ inline: true
214
+ inline_threshold: 20
215
+ table_threshold: 200
216
+ )
217
+ </pre>
218
+ </blockquote>
@@ -8,7 +8,7 @@ require "warnings_next_generation/gem_version.rb"
8
8
  Gem::Specification.new do |spec|
9
9
  spec.name = "danger-warnings_next_generation"
10
10
  spec.version = WarningsNextGeneration::VERSION
11
- spec.authors = ["Martin Schwamberger"]
11
+ spec.authors = ["Kyaak"]
12
12
  spec.email = ["kyaak.dev@gmail.com"]
13
13
  spec.description = "Danger plugin to for Jenkins-Warnings-Next-Generation plugin."
14
14
  spec.summary = "Read Jenkins warnings-ng reports and comment pull request with found issues."
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WarningsNextGeneration
4
- VERSION = "0.1.5"
4
+ VERSION = "1.0.0"
5
5
  end
@@ -89,9 +89,66 @@ module Danger
89
89
  def tools_report(*args)
90
90
  options = args.first
91
91
  check_auth(options)
92
+
93
+ collected_details = collect_details(options)
94
+ force_table = should_force_table(options, collected_details, baseline(options))
95
+ force_warning = should_force_warning(options, collected_details)
96
+
97
+ collected_details.each do |details|
98
+ name = details[:name]
99
+ detail_item = details[:details]
100
+
101
+ if inline?(options) && check_baseline(options) && !force_table
102
+ inline_report(name, detail_item, baseline(options))
103
+ else
104
+ tool_table(name, detail_item, force_warning)
105
+ end
106
+ end
107
+ end
108
+
109
+ private
110
+
111
+ def should_force_table(options, collected_details, baseline)
112
+ result = false
113
+ threshold = options[:inline_threshold] if options
114
+ if threshold
115
+ sum = 0
116
+ collected_details.each do |details|
117
+ issues = details[:details]["issues"]
118
+ issues ||= details[:details][:issues]
119
+ issues.each do |issue|
120
+ file = issue["fileName"].gsub(baseline, "")
121
+ sum += 1 if file_in_changeset?(file)
122
+ end
123
+ end
124
+ result = true if sum >= threshold
125
+ end
126
+ result
127
+ end
128
+
129
+ def should_force_warning(options, collected_details)
130
+ result = false
131
+ threshold = options[:table_threshold] if options
132
+ if threshold
133
+ sum = 0
134
+ collected_details.each do |details|
135
+ issues = details[:details]["issues"]
136
+ issues ||= details[:details][:issues]
137
+ issues.each do |issue|
138
+ file = File.basename(issue["fileName"])
139
+ sum += 1 if basename_in_changeset?(file)
140
+ end
141
+ end
142
+ result = true if sum >= threshold
143
+ end
144
+ result
145
+ end
146
+
147
+ def collect_details(options)
92
148
  tool_ids = include(options)
93
149
 
94
150
  tools = tool_entries
151
+ result = []
95
152
  tools.each do |tool|
96
153
  name = tool["name"]
97
154
  url = tool["latestUrl"]
@@ -99,16 +156,15 @@ module Danger
99
156
 
100
157
  next if use_include_option?(options) && !tool_ids.include?(id)
101
158
 
102
- if inline?(options) && check_baseline(options)
103
- inline_report(name, url, baseline(options))
104
- else
105
- tool_table(name, url)
106
- end
159
+ details = details_result(url)
160
+ result << {
161
+ name: name,
162
+ details: details,
163
+ }
107
164
  end
165
+ result
108
166
  end
109
167
 
110
- private
111
-
112
168
  def include(options)
113
169
  options && !options[:include].nil? ? options[:include] : []
114
170
  end
@@ -155,9 +211,9 @@ module Danger
155
211
  !options.nil? && !options[:include].nil?
156
212
  end
157
213
 
158
- def tool_table(name, url)
159
- details = details_result(url)
214
+ def tool_table(name, details, force_warnings)
160
215
  issues = details["issues"]
216
+ issues ||= details[:issues]
161
217
 
162
218
  table = WarningsNextGeneration::MarkdownTable.new
163
219
  table.detail_header(TABLE_HEADER_SEVERITY, TABLE_HEADER_FILE, TABLE_HEADER_DESCRIPTION)
@@ -172,15 +228,18 @@ module Danger
172
228
  table.line(severity, "#{file}:#{line}", "#{category_type(issue)} #{message}")
173
229
  end
174
230
 
175
- unless table.size.zero?
176
- content = +"### #{name}\n\n"
177
- content << table.to_markdown
178
- markdown(content)
231
+ if force_warnings
232
+ warn("This changeset has #{table.size} **#{name}** issues.")
233
+ else
234
+ unless table.size.zero?
235
+ content = +"### #{name}\n\n"
236
+ content << table.to_markdown
237
+ markdown(content)
238
+ end
179
239
  end
180
240
  end
181
241
 
182
- def inline_report(name, url, baseline)
183
- details = details_result(url)
242
+ def inline_report(name, details, baseline)
184
243
  issues = details["issues"]
185
244
 
186
245
  issues.each do |issue|
@@ -0,0 +1,17 @@
1
+ {
2
+ "_class": "io.jenkins.plugins.analysis.core.restapi.AggregationApi",
3
+ "tools": [
4
+ {
5
+ "id": "java",
6
+ "latestUrl": "http://localhost:8080/view/White%20Mountains/job/New%20-%20Pipeline%20-%20Simple%20Model/26/java",
7
+ "name": "Java Warnings",
8
+ "threshold": 1
9
+ },
10
+ {
11
+ "id": "pmd",
12
+ "latestUrl": "http://localhost:8080/view/White%20Mountains/job/New%20-%20Pipeline%20-%20Simple%20Model/26/pmd",
13
+ "name": "Pmd Warnings",
14
+ "threshold": 1
15
+ }
16
+ ]
17
+ }
@@ -378,6 +378,226 @@ module Danger
378
378
  markdowns = @dangerfile.status_report[:markdowns]
379
379
  expect(markdowns.length).to be(0)
380
380
  end
381
+
382
+ it "creates inline comments if issues lower than threshold" do
383
+ aggregation_return("/assets/aggregation_single.json")
384
+ issues = android_lint_issues(14)
385
+ expect(issues["issues"].size).to be(14)
386
+ details_return_issue(issues)
387
+ mock_file_in_changeset(true)
388
+ @my_plugin.tools_report(inline: true, baseline: "mylibrary/src/main", inline_threshold: 15)
389
+
390
+ markdowns = @dangerfile.status_report[:markdowns]
391
+ messages = @dangerfile.status_report[:messages]
392
+ expect(markdowns.length).to be(0)
393
+ expect(messages.length).to be(14)
394
+ end
395
+
396
+ it "creates inline comments if issues not in changedfiles and lower than threshold" do
397
+ aggregation_return("/assets/aggregation_two.json")
398
+ java_issues = android_lint_issues(8)
399
+ pmd_issues = android_lint_issues(8, "OtherFile.java")
400
+ details_return_issue(java_issues, "java")
401
+ details_return_issue(pmd_issues, "pmd")
402
+ target_files_return(["src/main/AndroidManifest.xml"])
403
+ @my_plugin.tools_report(inline: true, baseline: "project", inline_threshold: 15)
404
+
405
+ markdowns = @dangerfile.status_report[:markdowns]
406
+ messages = @dangerfile.status_report[:messages]
407
+ expect(markdowns.length).to be(0)
408
+ expect(messages.length).to be(8)
409
+ end
410
+
411
+ it "creates table comments if issues not in changedfiles and lower than table threshold" do
412
+ aggregation_return("/assets/aggregation_two.json")
413
+ java_issues = android_lint_issues(8)
414
+ pmd_issues_1 = android_lint_issues(8, "OtherFile.java")
415
+ pmd_issues_2 = android_lint_issues(8, "OtherFileB.java")
416
+ pmd_issues = { "issues": pmd_issues_1["issues"] += pmd_issues_2["issues"] }
417
+ details_return_issue(java_issues, "java")
418
+ details_return_issue(pmd_issues, "pmd")
419
+ target_files_return(["src/main/AndroidManifest.xml", "src/main/OtherFile.java"])
420
+ @my_plugin.tools_report(inline: true, baseline: "project", inline_threshold: 15, table_threshold: 30)
421
+
422
+ markdowns = @dangerfile.status_report[:markdowns]
423
+ messages = @dangerfile.status_report[:messages]
424
+ expect(markdowns.length).to be(2)
425
+ expect(messages.length).to be(0)
426
+ end
427
+
428
+ it "creates table comment if issues equal than threshold" do
429
+ aggregation_return("/assets/aggregation_single.json")
430
+ issues = android_lint_issues(15)
431
+ expect(issues["issues"].size).to be(15)
432
+ details_return_issue(issues)
433
+ mock_file_in_changeset(true)
434
+ mock_basename_in_changeset(true)
435
+ @my_plugin.tools_report(inline: true, baseline: "mylibrary/src/main", inline_threshold: 15)
436
+
437
+ markdowns = @dangerfile.status_report[:markdowns]
438
+ messages = @dangerfile.status_report[:messages]
439
+ expect(markdowns.length).to be(1)
440
+ expect(messages.length).to be(0)
441
+ end
442
+
443
+ it "creates table comment if issues greater than threshold" do
444
+ aggregation_return("/assets/aggregation_single.json")
445
+ issues = android_lint_issues(16)
446
+ expect(issues["issues"].size).to be(16)
447
+ details_return_issue(issues)
448
+ mock_file_in_changeset(true)
449
+ mock_basename_in_changeset(true)
450
+ @my_plugin.tools_report(inline: true, baseline: "mylibrary/src/main", inline_threshold: 15)
451
+
452
+ markdowns = @dangerfile.status_report[:markdowns]
453
+ messages = @dangerfile.status_report[:messages]
454
+ expect(markdowns.length).to be(1)
455
+ expect(messages.length).to be(0)
456
+ end
457
+
458
+ it "creates table comment if issues of multiple reports greater than threshold" do
459
+ aggregation_return("/assets/aggregation.json")
460
+ issues = android_lint_issues(9)
461
+ expect(issues["issues"].size).to be(9)
462
+ details_return_issue(issues, "java")
463
+ details_return_issue(issues, "checkstyle")
464
+ details_return_issue(issues, "pmd")
465
+ details_return_issue(issues, "maven")
466
+ details_return_issue(issues, "javadoc")
467
+ details_return_issue(issues, "spotbugs")
468
+ details_return_issue(issues, "cpd")
469
+ details_return_issue(issues, "open-tasks")
470
+ mock_file_in_changeset(true)
471
+ mock_basename_in_changeset(true)
472
+ @my_plugin.tools_report(inline: true, baseline: "mylibrary/src/main", inline_threshold: 15)
473
+
474
+ markdowns = @dangerfile.status_report[:markdowns]
475
+ messages = @dangerfile.status_report[:messages]
476
+ expect(markdowns.length).to be(8)
477
+ expect(messages.length).to be(0)
478
+ end
479
+
480
+ it "creates inline comment if issues of multiple reports lower threshold" do
481
+ aggregation_return("/assets/aggregation.json")
482
+ issues = android_lint_issues(10)
483
+ expect(issues["issues"].size).to be(10)
484
+ details_return_issue(issues, "java")
485
+ details_return_issue(issues, "checkstyle")
486
+ details_return_issue(issues, "pmd")
487
+ details_return_issue(issues, "maven")
488
+ details_return_issue(issues, "javadoc")
489
+ details_return_issue(issues, "spotbugs")
490
+ details_return_issue(issues, "cpd")
491
+ details_return_issue(issues, "open-tasks")
492
+ mock_file_in_changeset(true)
493
+ mock_basename_in_changeset(true)
494
+ @my_plugin.tools_report(inline: true, baseline: "mylibrary/src/main", inline_threshold: 100)
495
+
496
+ markdowns = @dangerfile.status_report[:markdowns]
497
+ messages = @dangerfile.status_report[:messages]
498
+ expect(markdowns.length).to be(0)
499
+ expect(messages.length).to be(80)
500
+ end
501
+
502
+ it "creates inline comments if issues lower than inline_threshold and table_threshold" do
503
+ aggregation_return("/assets/aggregation_single.json")
504
+ issues = android_lint_issues(14)
505
+ expect(issues["issues"].size).to be(14)
506
+ details_return_issue(issues)
507
+ mock_file_in_changeset(true)
508
+ @my_plugin.tools_report(inline: true, baseline: "mylibrary/src/main", inline_threshold: 15, table_threshold: 15)
509
+
510
+ markdowns = @dangerfile.status_report[:markdowns]
511
+ messages = @dangerfile.status_report[:messages]
512
+ expect(markdowns.length).to be(0)
513
+ expect(messages.length).to be(14)
514
+ end
515
+
516
+ it "creates table comments if issues higher than inline_threshold and lower table_threshold" do
517
+ aggregation_return("/assets/aggregation_single.json")
518
+ issues = android_lint_issues(14)
519
+ expect(issues["issues"].size).to be(14)
520
+ details_return_issue(issues)
521
+ mock_file_in_changeset(true)
522
+ mock_basename_in_changeset(true)
523
+ @my_plugin.tools_report(inline: true, baseline: "mylibrary/src/main", inline_threshold: 10, table_threshold: 15)
524
+
525
+ markdowns = @dangerfile.status_report[:markdowns]
526
+ messages = @dangerfile.status_report[:messages]
527
+ expect(markdowns.length).to be(1)
528
+ expect(messages.length).to be(0)
529
+ end
530
+
531
+ it "creates warning comment if issues greater than table_threshold" do
532
+ aggregation_return("/assets/aggregation_single.json")
533
+ issues = android_lint_issues(16)
534
+ expect(issues["issues"].size).to be(16)
535
+ details_return_issue(issues)
536
+ mock_file_in_changeset(true)
537
+ mock_basename_in_changeset(true)
538
+ @my_plugin.tools_report(table_threshold: 15)
539
+
540
+ markdowns = @dangerfile.status_report[:markdowns]
541
+ messages = @dangerfile.status_report[:messages]
542
+ warnings = @dangerfile.status_report[:warnings]
543
+ expect(markdowns.length).to be(0)
544
+ expect(messages.length).to be(0)
545
+ expect(warnings.length).to be(1)
546
+ expect(warnings[0]).to include("16 **Java Warnings** issues")
547
+ end
548
+
549
+ it "creates table comment if issues greater than table_threshold but not in changelog" do
550
+ aggregation_return("/assets/aggregation_two.json")
551
+ java_issues = android_lint_issues(8)
552
+ pmd_issues = android_lint_issues(8, "OtherFile.java")
553
+ details_return_issue(java_issues, "java")
554
+ details_return_issue(pmd_issues, "pmd")
555
+ target_files_return(["src/main/AndroidManifest.xml"])
556
+ @my_plugin.tools_report(table_threshold: 15)
557
+
558
+ markdowns = @dangerfile.status_report[:markdowns]
559
+ messages = @dangerfile.status_report[:messages]
560
+ expect(markdowns.length).to be(1)
561
+ expect(messages.length).to be(0)
562
+ end
563
+
564
+ it "creates warn comments if issues in changedfiles and higher than table threshold" do
565
+ aggregation_return("/assets/aggregation_two.json")
566
+ java_issues = android_lint_issues(8)
567
+ pmd_issues_1 = android_lint_issues(8, "OtherFile.java")
568
+ pmd_issues_2 = android_lint_issues(8, "OtherFileB.java")
569
+ pmd_issues = { "issues": pmd_issues_1["issues"] += pmd_issues_2["issues"] }
570
+ details_return_issue(java_issues, "java")
571
+ details_return_issue(pmd_issues, "pmd")
572
+ target_files_return(["src/main/AndroidManifest.xml", "src/main/OtherFile.java"])
573
+ @my_plugin.tools_report(table_threshold: 15)
574
+
575
+ markdowns = @dangerfile.status_report[:markdowns]
576
+ messages = @dangerfile.status_report[:messages]
577
+ warnings = @dangerfile.status_report[:warnings]
578
+ expect(markdowns.length).to be(0)
579
+ expect(messages.length).to be(0)
580
+ expect(warnings.length).to be(2)
581
+ expect(warnings[1]).to include("8 **Pmd Warnings** issues")
582
+ end
583
+
584
+ it "creates warning comment if issues greater than inline and table threshold" do
585
+ aggregation_return("/assets/aggregation_single.json")
586
+ issues = android_lint_issues(16)
587
+ expect(issues["issues"].size).to be(16)
588
+ details_return_issue(issues)
589
+ mock_file_in_changeset(true)
590
+ mock_basename_in_changeset(true)
591
+ @my_plugin.tools_report(inline: true, baseline: "mylibrary/src/main", inline_threshold: 10, table_threshold: 15)
592
+
593
+ markdowns = @dangerfile.status_report[:markdowns]
594
+ messages = @dangerfile.status_report[:messages]
595
+ warnings = @dangerfile.status_report[:warnings]
596
+ expect(markdowns.length).to be(0)
597
+ expect(messages.length).to be(0)
598
+ expect(warnings.length).to be(1)
599
+ expect(warnings[0]).to include("16 **Java Warnings** issues")
600
+ end
381
601
  end
382
602
  end
383
603
  end
@@ -401,33 +621,37 @@ def details_return(file)
401
621
  @my_plugin.stubs(:details_result).returns(json)
402
622
  end
403
623
 
404
- def details_return_issue(issue)
405
- @my_plugin.stubs(:details_result).returns(issue)
624
+ def details_return_issue(issue, toold_id = "java")
625
+ @my_plugin.stubs(:details_result).with("http://localhost:8080/view/White%20Mountains/job/New%20-%20Pipeline%20-%20Simple%20Model/26/#{toold_id}").returns(issue)
406
626
  end
407
627
 
408
- def android_lint_issues
628
+ def android_lint_issues(count = 1, filename = "AndroidManifest.xml")
409
629
  json = {
410
- "issues": [
411
- {
412
- "baseName": "AndroidManifest.xml",
413
- "category": "Internationalization:Bidirectional Text",
414
- "columnEnd": 0,
415
- "columnStart": 0,
416
- "description": "",
417
- "fileName": "/var/lib/jenkins/workspace/Jenkins/Examples/android/MR6--danger/repository/mylibrary/src/main/AndroidManifest.xml",
418
- "fingerprint": "4F7305CA47CE9CFC2A8E9BE4287E79F8",
419
- "lineEnd": 0,
420
- "lineStart": 0,
421
- "message": "Using RTL attributes without enabling RTL support\nThe project references RTL attributes, but does not explicitly enable or disable RTL support with `android:supportsRtl` in the manifest\nTo enable right-to-left support, when running on API 17 and higher, you must set the `android:supportsRtl` attribute in the manifest `<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.",
422
- "moduleName": "",
423
- "origin": "android-lint",
424
- "packageName": "-",
425
- "reference": "3",
426
- "severity": "NORMAL",
427
- "type": "RtlEnabled",
428
- },
429
- ],
630
+ "issues": [],
430
631
  }
632
+
633
+ items = 0
634
+ while items < count
635
+ json[:issues] << {
636
+ "baseName": filename,
637
+ "category": "Internationalization:Bidirectional Text",
638
+ "columnEnd": 0,
639
+ "columnStart": 0,
640
+ "description": "",
641
+ "fileName": "project/src/main/#{filename}",
642
+ "fingerprint": "4F7305CA47CE9CFC2A8E9BE4287E79F8",
643
+ "lineEnd": 0,
644
+ "lineStart": 0,
645
+ "message": "Using RTL attributes without enabling RTL support\nThe project references RTL attributes, but does not explicitly enable or disable RTL support with `android:supportsRtl` in the manifest\nTo enable right-to-left support, when running on API 17 and higher, you must set the `android:supportsRtl` attribute in the manifest `<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.",
646
+ "moduleName": "",
647
+ "origin": "android-lint",
648
+ "packageName": "-",
649
+ "reference": "3",
650
+ "severity": "NORMAL",
651
+ "type": "RtlEnabled",
652
+ }
653
+ items += 1
654
+ end
431
655
  serialized = JSON.generate(json)
432
656
  JSON.parse(serialized)
433
657
  end
@@ -446,3 +670,11 @@ end
446
670
  def target_files_return(list)
447
671
  @my_plugin.stubs(:target_files).returns(list)
448
672
  end
673
+
674
+ def mock_file_in_changeset(value)
675
+ @my_plugin.stubs(:file_in_changeset?).returns(value)
676
+ end
677
+
678
+ def mock_basename_in_changeset(value)
679
+ @my_plugin.stubs(:basename_in_changeset?).returns(value)
680
+ 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.5
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
- - Martin Schwamberger
7
+ - Kyaak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-02 00:00:00.000000000 Z
11
+ date: 2019-06-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger-plugin-api
@@ -174,6 +174,7 @@ files:
174
174
  - sonar-project.properties
175
175
  - spec/assets/aggregation.json
176
176
  - spec/assets/aggregation_single.json
177
+ - spec/assets/aggregation_two.json
177
178
  - spec/assets/example/aggregation.json
178
179
  - spec/assets/example/detail_android_lint.json
179
180
  - spec/assets/example/detail_detekt.json
@@ -207,13 +208,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
207
208
  - !ruby/object:Gem::Version
208
209
  version: '0'
209
210
  requirements: []
210
- rubygems_version: 3.0.3
211
+ rubygems_version: 3.0.4
211
212
  signing_key:
212
213
  specification_version: 4
213
214
  summary: Read Jenkins warnings-ng reports and comment pull request with found issues.
214
215
  test_files:
215
216
  - spec/assets/aggregation.json
216
217
  - spec/assets/aggregation_single.json
218
+ - spec/assets/aggregation_two.json
217
219
  - spec/assets/example/aggregation.json
218
220
  - spec/assets/example/detail_android_lint.json
219
221
  - spec/assets/example/detail_detekt.json