danger-chikuwatter 0.0.3 → 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: e7a602ef5810a9cfe876817c4c1b746266d715fd1af8a0928952488c91171426
4
- data.tar.gz: 3aadfb9008e6a0703436a87dccf63737bfc4a45b99e737a7c66a32a6bb61fc23
3
+ metadata.gz: c734434700698b98637fd16e866f41c4655284027fd4357cd99b89f873d40c90
4
+ data.tar.gz: 9804b717d23c2fa43b6fd4227ef2881c4dd8ff9efddb2a39dc60795e43ea0065
5
5
  SHA512:
6
- metadata.gz: 6a752695bba8e31fb3f379550cd2a85da512916155e66b469eb7177ac800c62e3fd6c55000d81d9bf25312142174e3638928d73ae4e6d358e31bddaf140af0e5
7
- data.tar.gz: c640f16976cdee35887a14680c8ce1c33ccb464b327accd0ba4e0e3f1f3f48ad190453a4e14b88fc266a6716ec2f04db935020ef9d0463187f6fcbaa2e5570fc
6
+ metadata.gz: 867ec7780654354f8ca8534852d7743f3e97ca564c0f2b653119cd30125095b08ea1fa1abcccb71b0a19e4640b8013be421f987179c430a30ec2342a5393ae0a
7
+ data.tar.gz: 7fcdb89fb107a814489ca353416addb22557b7e0992089a6f61ba1fc14e4b062e5cb1fb9abef431fee56970c8cf3868b9873e8ea47c838cad7a07e8310833704
data/README.md CHANGED
@@ -12,18 +12,36 @@ gem danger-chikuwa
12
12
 
13
13
  ## Usage
14
14
 
15
+ ### Report flutter analyze errors and warnings
15
16
  Run flutter analyze and save the result to a file.
16
17
 
17
18
  ```
18
- $ flutter analyze 2>&1 | tee result.log
19
+ $ flutter analyze 2>&1 | tee analyze.log
19
20
  ```
20
21
 
21
22
  Add the following to your Dangerfile.
22
23
 
23
24
  ```
24
- chikuwatter.report "analyze.log"
25
+ chikuwatter.analyze "analyze.log"
26
+ chikuwatter.report
25
27
  ```
26
28
 
29
+ ### Repost riverpod_lint errors and warnings
30
+ Run riverpod_lint and save the result to a file.
31
+
32
+ ```
33
+ $ dart run custom_lint 2>&1 | tee riverpod_lint.log
34
+ ```
35
+
36
+ Add the following to your Dangerfile.
37
+
38
+ ```
39
+ chikuwatter.riverpod_lint_log "riverpod_lint.log"
40
+ chikuwatter.report
41
+ ```
42
+
43
+ ### Report inline comments
44
+
27
45
  If `inline_mode` is true, the plugin will report the errors, warnings and **info** as inline comments.
28
46
 
29
47
  ```
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Chikuwatter
4
- VERSION = "0.0.3"
4
+ VERSION = "1.0.0"
5
5
  end
@@ -14,7 +14,7 @@ module Danger
14
14
  # chikuwatter.report = result.log
15
15
  #
16
16
  class DangerChikuwatter < Plugin
17
- attr_accessor :project_root, :inline_mode
17
+ attr_accessor :project_root, :inline_mode, :analyze_log, :riverpod_lint_log
18
18
 
19
19
  # Project root directory
20
20
  def _project_root
@@ -28,14 +28,40 @@ module Danger
28
28
  @inline_mode || false
29
29
  end
30
30
 
31
+ # Analyze log file path
32
+ def _analyze_log
33
+ @analyze_log
34
+ end
35
+
36
+ # Riverpod lint log file path
37
+ def _riverpod_lint_log
38
+ @riverpod_lint_log
39
+ end
40
+
31
41
  # Report analyze results
32
- def report(file_path)
33
- if File.exist?(file_path)
34
- results = parse_analyze_log(file_path)
35
- send_reports(results)
36
- else
37
- fail "analyze log file not found"
42
+ def report
43
+ results = []
44
+ if !_analyze_log && !_riverpod_lint_log
45
+ fail "You must set report file path."
46
+ end
47
+
48
+ if _analyze_log
49
+ if File.exist?(_analyze_log)
50
+ results += parse_analyze_log(_analyze_log)
51
+ else
52
+ fail "File not found: #{_analyze_log}"
53
+ end
38
54
  end
55
+
56
+ if _riverpod_lint_log
57
+ if File.exist?(_riverpod_lint_log)
58
+ results += parse_riverpod_lint_log(_riverpod_lint_log)
59
+ else
60
+ fail "File not found: #{_riverpod_lint_log}"
61
+ end
62
+ end
63
+
64
+ send_reports(results)
39
65
  end
40
66
 
41
67
  # Output level
@@ -91,6 +117,28 @@ module Danger
91
117
  return report_data
92
118
  end
93
119
 
120
+ # Parse riverpod_lint log
121
+ def parse_riverpod_lint_log(file_path)
122
+ _project_root = Dir.pwd
123
+ report_data = []
124
+ File.foreach(file_path) do |line|
125
+ logs = line.split("•")
126
+ # lib/presentation/screens/favorite_contents/favorite_contents_screen_view_model.dart:135:20 • Generated providers should only depend on other generated providers. Failing to do so may break rules such as "provider_dependencies". • avoid_manual_providers_as_generated_provider_dependency
127
+ if logs.length < 3
128
+ next
129
+ end
130
+
131
+ file, line_num = logs[0].strip!.split(":")
132
+ message = "riverpod_lint • `#{logs[2].strip!}`\n#{logs[1].strip!}"
133
+
134
+ report_data.push(
135
+ ReportData.new(message, Type::WARN, file, line_num.to_i)
136
+ )
137
+ end
138
+
139
+ return report_data
140
+ end
141
+
94
142
  # Send analyze results
95
143
  def send_reports(results)
96
144
  results.each do |data|
@@ -25,18 +25,39 @@ module Danger
25
25
  # Some examples for writing tests
26
26
  # You should replace these with your own.
27
27
 
28
- it "Errors on file not found" do
29
- @my_plugin.report "no file"
30
- expect(@dangerfile.status_report[:errors]).to eq(["analyze log file not found"])
28
+ it "Errors on analyze file not found" do
29
+ @my_plugin.analyze_log = "no file"
30
+ @my_plugin.report
31
+ expect(@dangerfile.status_report[:errors]).to eq(["File not found: no file"])
31
32
  end
32
33
 
33
- it "Report" do
34
+ it "Errors on riverpod_lint file not found" do
35
+ @my_plugin.riverpod_lint_log = "no file"
36
+ @my_plugin.report
37
+ expect(@dangerfile.status_report[:errors]).to eq(["File not found: no file"])
38
+ end
39
+
40
+ it "Errors on missing parameters" do
41
+ @my_plugin.report
42
+ expect(@dangerfile.status_report[:errors]).to eq(["You must set report file path."])
43
+ end
44
+
45
+ it "Report Analyze results" do
34
46
  file_path = "#{File.dirname(__FILE__)}/fixtures/analyze.log"
35
47
  @my_plugin.inline_mode = true
36
- @my_plugin.report file_path
48
+ @my_plugin.analyze_log = file_path
49
+ @my_plugin.report
37
50
  expect(@dangerfile.status_report[:warnings]).to eq(["warning • `invalid_null_aware_operator`\nThe receiver can't be null, so the null-aware operator '?.' is unnecessary", "info • `deprecated_member_use`\n'headline1' is deprecated and shouldn't be used. Use displayLarge instead. This feature was deprecated after v3.1.0-0.0.pre"])
38
51
  expect(@dangerfile.status_report[:errors]).to eq(["error • `argument_type_not_assignable`\nThe argument type 'String?' can't be assigned to the parameter type 'String'"])
39
52
  end
53
+
54
+ it "Report Riverpod lint results" do
55
+ file_path = "#{File.dirname(__FILE__)}/fixtures/riverpod_lint.log"
56
+ @my_plugin.inline_mode = true
57
+ @my_plugin.riverpod_lint_log = file_path
58
+ @my_plugin.report
59
+ expect(@dangerfile.status_report[:warnings]).to eq(["riverpod_lint • `avoid_manual_providers_as_generated_provider_dependency`\nGenerated providers should only depend on other generated providers. Failing to do so may break rules such as \"provider_dependencies\"."])
60
+ end
40
61
  end
41
62
  end
42
63
  end
@@ -0,0 +1 @@
1
+ lib/main.dart:20:20 • Generated providers should only depend on other generated providers. Failing to do so may break rules such as "provider_dependencies". • avoid_manual_providers_as_generated_provider_dependency
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danger-chikuwatter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - watanavex
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-11 00:00:00.000000000 Z
11
+ date: 2023-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger-plugin-api
@@ -173,6 +173,7 @@ files:
173
173
  - lib/danger_plugin.rb
174
174
  - spec/chikuwatter_spec.rb
175
175
  - spec/fixtures/analyze.log
176
+ - spec/fixtures/riverpod_lint.log
176
177
  - spec/spec_helper.rb
177
178
  homepage: https://github.com/watanavex/danger-chikuwatter
178
179
  licenses:
@@ -200,4 +201,5 @@ summary: A longer description of danger-chikuwatter.
200
201
  test_files:
201
202
  - spec/chikuwatter_spec.rb
202
203
  - spec/fixtures/analyze.log
204
+ - spec/fixtures/riverpod_lint.log
203
205
  - spec/spec_helper.rb