gergich 1.2.3 → 2.1.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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/{bin → exe}/gergich +0 -0
  3. data/{bin → exe}/master_bouncer +0 -0
  4. data/lib/gergich/capture/androidlint_capture.rb +8 -3
  5. data/lib/gergich/capture/brakeman_capture.rb +3 -2
  6. data/lib/gergich/capture/eslint_capture.rb +2 -1
  7. data/lib/gergich/capture/flake8_capture.rb +1 -1
  8. data/lib/gergich/capture/i18nliner_capture.rb +1 -1
  9. data/lib/gergich/capture/rubocop_capture.rb +19 -3
  10. data/lib/gergich/capture/shellcheck_capture.rb +2 -1
  11. data/lib/gergich/capture/stylelint_capture.rb +2 -5
  12. data/lib/gergich/capture/swiftlint_capture.rb +1 -1
  13. data/lib/gergich/capture/tsc_capture.rb +27 -0
  14. data/lib/gergich/capture/yamllint_capture.rb +8 -2
  15. data/lib/gergich/capture.rb +12 -5
  16. data/lib/gergich/cli/gergich.rb +7 -4
  17. data/lib/gergich/cli/master_bouncer.rb +5 -6
  18. data/lib/gergich/cli.rb +1 -1
  19. data/lib/gergich.rb +21 -25
  20. metadata +43 -33
  21. data/LICENSE +0 -20
  22. data/README.md +0 -178
  23. data/bin/check_coverage +0 -8
  24. data/bin/run_tests.sh +0 -22
  25. data/spec/gergich/capture/androidlint_capture_spec.rb +0 -61
  26. data/spec/gergich/capture/brakeman_capture_spec.rb +0 -91
  27. data/spec/gergich/capture/custom_capture_spec.rb +0 -41
  28. data/spec/gergich/capture/eslint_capture_spec.rb +0 -31
  29. data/spec/gergich/capture/flake8_capture_spec.rb +0 -23
  30. data/spec/gergich/capture/i18nliner_capture_spec.rb +0 -25
  31. data/spec/gergich/capture/rubocop_capture_spec.rb +0 -75
  32. data/spec/gergich/capture/shellcheck_capture_spec.rb +0 -83
  33. data/spec/gergich/capture/stylelint_capture_spec.rb +0 -54
  34. data/spec/gergich/capture/swiftlint_capture_spec.rb +0 -42
  35. data/spec/gergich/capture/yamllint_capture_spec.rb +0 -31
  36. data/spec/gergich/capture_spec.rb +0 -75
  37. data/spec/gergich_spec.rb +0 -396
  38. data/spec/spec_helper.rb +0 -92
  39. data/spec/support/capture_shared_examples.rb +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 209022ec9ca1bfed90a33f905f9d0e36f016b7f25485e66041e276ff393fec6e
4
- data.tar.gz: f6477fb1a8f75192b6f516cfe1197db7800a3b221a703d71da7a1204db3a23bc
3
+ metadata.gz: 2266d14e8768ee3abd861d8ea5783ccec76f2d739a7f47714a716d2b2633d315
4
+ data.tar.gz: 117e4a786302fb5f1f8edb314dcbf610bac9509c088fb2187eed12e66b27b8ef
5
5
  SHA512:
6
- metadata.gz: f6ffba5044485692318eb057407f9d6032eccd9118942233e34b3d727201784ca2111c56adb1e5ce306814916d90585b6341ff19eeb1df6c1cc0bf98d4b6b5df
7
- data.tar.gz: f7b5f8e726eabc13f722da011df51d7c0fb137480130573819c928d1bca02057f91330d995cbda0a7ad8ad7661ee28a026a3df12f5d87911f2848f9cfd369113
6
+ metadata.gz: 3e834a5eae2e31b72820880ffbcb6b3dfd2ead64d03e774f322a63b0758a9dad48eb51c24ed9e6cd0fb5d598c91b1d042b3034df41d8c417e6406636370ee058
7
+ data.tar.gz: 8eb5874994069df2ef550b86ad41377ae37f9cf1f2ef9a54769cc29279a0e1f899447a66f36c5c069b4265210f888696d906fbe6e3d1d13407b4bea6e8060f1a
File without changes
File without changes
@@ -34,9 +34,14 @@ module Gergich
34
34
  /mx
35
35
 
36
36
  output.scan(pattern).map { |file, line, severity, error, context|
37
- context = "\n\n" + context if context
38
- { path: file, message: "[androidlint] #{error}#{context}".strip,
39
- position: (line || 0).to_i, severity: SEVERITY_MAP[severity] }
37
+ context = "\n\n#{context}" if context
38
+ {
39
+ path: file,
40
+ message: "#{error}#{context}".strip,
41
+ position: (line || 0).to_i,
42
+ severity: SEVERITY_MAP[severity],
43
+ source: "androidlint"
44
+ }
40
45
  }.compact
41
46
  end
42
47
  end
@@ -14,7 +14,7 @@ module Gergich
14
14
  def run(output)
15
15
  # See brakeman_example.json for sample output.
16
16
  JSON.parse(output)["warnings"].map { |warning|
17
- message = "[brakeman] #{warning['warning_type']}: #{warning['message']}"
17
+ message = "#{warning['warning_type']}: #{warning['message']}"
18
18
  message += "\n Code: #{warning['code']}" if warning["code"]
19
19
  message += "\n User Input: #{warning['user_input']}" if warning["user_input"]
20
20
  message += "\n See: #{warning['link']}" if warning["link"]
@@ -22,7 +22,8 @@ module Gergich
22
22
  path: warning["file"],
23
23
  position: warning["line"] || 0,
24
24
  message: message,
25
- severity: SEVERITY_MAP[warning["confidence"]]
25
+ severity: SEVERITY_MAP[warning["confidence"]],
26
+ source: "brakeman"
26
27
  }
27
28
  }.compact
28
29
  end
@@ -16,7 +16,8 @@ module Gergich
16
16
  output.scan(pattern).map { |file, errors|
17
17
  errors.scan(error_pattern).map { |line, severity, error|
18
18
  severity = SEVERITY_MAP[severity]
19
- { path: file, message: "[eslint] #{error}", position: line.to_i, severity: severity }
19
+ { path: file, message: error, source: "eslint", position: line.to_i,
20
+ severity: severity }
20
21
  }
21
22
  }.compact.flatten
22
23
  end
@@ -11,7 +11,7 @@ module Gergich
11
11
  /mx
12
12
 
13
13
  output.scan(pattern).map { |file, line, error|
14
- { path: file, message: "[flake8] #{error}",
14
+ { path: file, message: error, source: "flake8",
15
15
  position: line.to_i, severity: "error" }
16
16
  }.compact
17
17
  end
@@ -16,7 +16,7 @@ module Gergich
16
16
  line = Regexp.last_match[1]
17
17
  ""
18
18
  end
19
- { path: file, message: "[i18n] #{error}", position: line.to_i, severity: "error" }
19
+ { path: file, message: error, source: "i18n", position: line.to_i, severity: "error" }
20
20
  }.compact
21
21
  end
22
22
  end
@@ -49,15 +49,31 @@ module Gergich
49
49
  # if there is code context at the end, separate it and indent it
50
50
  # so that gerrit preserves formatting
51
51
  if /(?<context>[^\n]+\n *\^+\n)/m =~ message
52
- message.sub!(context, "\n" + context.gsub(/^/, " "))
52
+ message.sub!(context, "\n#{context.gsub(/^/, ' ')}")
53
53
  end
54
+ match = message.match(
55
+ %r{
56
+ \A
57
+ (?<corrected>\[Corrected\]\s)?
58
+ (?<correctable>\[Correctable\]\s)?
59
+ (?:(?<cop>[A-Za-z/]+):\s)?
60
+ (?<message>.*)
61
+ \z
62
+ }mx
63
+ )
54
64
 
65
+ # rubocop:disable Style/DoubleNegation
55
66
  messages << {
56
67
  path: file,
57
68
  position: line.to_i,
58
- message: "[rubocop] #{message}",
59
- severity: SEVERITY_MAP[severity]
69
+ message: match[:message],
70
+ rule: match[:cop],
71
+ corrected: !!match[:corrected],
72
+ correctable: !!match[:correctable],
73
+ severity: SEVERITY_MAP[severity],
74
+ source: "rubocop"
60
75
  }
76
+ # rubocop:enable Style/DoubleNegation
61
77
  end
62
78
 
63
79
  messages
@@ -20,7 +20,8 @@ module Gergich
20
20
  path: warning.fetch("file"),
21
21
  position: warning.fetch("line"),
22
22
  message: warning.fetch("message"),
23
- severity: SEVERITY_MAP.fetch(severity)
23
+ severity: SEVERITY_MAP.fetch(severity),
24
+ source: "shellcheck"
24
25
  }
25
26
  end
26
27
  end
@@ -6,7 +6,6 @@ module Gergich
6
6
  # stylelint is a css linter
7
7
  # https://github.com/stylelint/stylelint
8
8
  #
9
- # rubocop:disable Style/AsciiComments
10
9
  # example full output:
11
10
  # app/stylesheets/base/_print.scss
12
11
  # 3:17 ✖ Unexpected invalid hex color "#owiehfi" color-no-invalid-hex
@@ -16,8 +15,6 @@ module Gergich
16
15
  # 2:15 ✖ Unexpected invalid hex color "#2D3B4" color-no-invalid-hex
17
16
  # 30:15 ⚠ Expected "#2d3b4a" to be "#2D3B4A" color-hex-case
18
17
 
19
- MESSAGE_PREFIX = "[stylelint]"
20
-
21
18
  SEVERITY_MAP = {
22
19
  "✖" => "error",
23
20
  "⚠" => "warn",
@@ -31,7 +28,6 @@ module Gergich
31
28
  # example error line:
32
29
  # 1:15 ✖ Unexpected invalid hex color "#2D3B4" color-no-invalid-hex
33
30
  ERROR_PATTERN = /^\s+(\d+):\d+\s+(✖|⚠|ℹ)\s+(.*?)\s\s+[^\n]+\n/.freeze
34
- # rubocop:enable Style/AsciiComments
35
31
 
36
32
  PATTERN = /#{FILE_PATH_PATTERN}((#{ERROR_PATTERN})+)/.freeze
37
33
 
@@ -41,7 +37,8 @@ module Gergich
41
37
  severity = SEVERITY_MAP[severity]
42
38
  {
43
39
  path: file,
44
- message: "#{MESSAGE_PREFIX} #{error}",
40
+ message: error,
41
+ source: "stylelint",
45
42
  position: line.to_i,
46
43
  severity: severity
47
44
  }
@@ -24,7 +24,7 @@ module Gergich
24
24
  /mx
25
25
 
26
26
  output.scan(pattern).map { |file, line, severity, error, _context|
27
- { path: file, message: "[swiftlint] #{error}",
27
+ { path: file, message: error, source: "swiftlint",
28
28
  position: line.to_i, severity: SEVERITY_MAP[severity] }
29
29
  }.compact
30
30
  end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gergich
4
+ module Capture
5
+ class TscCapture < BaseCapture
6
+ def run(output)
7
+ pattern = /([^(\n]+)\((\d+),(\d+)\): (\w+) (\w+): (.*(\n .*)*)/
8
+
9
+ output.scan(pattern).map { |file, line, pos, severity, code, error|
10
+ {
11
+ path: file,
12
+ message: error,
13
+ source: "tsc",
14
+ rule: code,
15
+ position: {
16
+ start_line: line.to_i,
17
+ start_position: pos.to_i,
18
+ end_line: line.to_i,
19
+ end_position: pos.to_i
20
+ },
21
+ severity: severity
22
+ }
23
+ }
24
+ end
25
+ end
26
+ end
27
+ end
@@ -9,14 +9,20 @@ module Gergich
9
9
  # e.g. " 9:5 error string value redundantly (quoted-strings)"
10
10
  error_pattern = %r{\s\s+(\d+):\d+\s+(\w+)\s+(.*?)\s+\([\w/-]+\)\n}
11
11
  pattern = %r{ # Example:
12
- ^.\/([^\n]+)\n # ./api/config/lti/development/config.yml
12
+ ^./([^\n]+)\n # ./api/config/lti/development/config.yml
13
13
  ((#{error_pattern})+) # 9:5 error string value redundantly (quoted-strings)
14
14
  }mx
15
15
 
16
16
  output.scan(pattern).map { |file, errors|
17
17
  errors.scan(error_pattern).map { |line, severity, error|
18
18
  severity = SEVERITY_MAP[severity]
19
- { path: file, message: "[yamllint] #{error}", position: line.to_i, severity: severity }
19
+ {
20
+ path: file,
21
+ message: error,
22
+ source: "yamllint",
23
+ position: line.to_i,
24
+ severity: severity
25
+ }
20
26
  }
21
27
  }.compact.flatten
22
28
  end
@@ -7,6 +7,7 @@ module Gergich
7
7
  module Capture
8
8
  class BaseCapture
9
9
  def self.inherited(subclass)
10
+ super
10
11
  name = normalize_captor_class_name(subclass)
11
12
  Capture.captors[name] = subclass
12
13
  end
@@ -38,8 +39,14 @@ module Gergich
38
39
  comments.each do |comment|
39
40
  next if skip_paths.any? { |path| comment[:path].start_with?(path) }
40
41
 
41
- draft.add_comment comment[:path], comment[:position],
42
- comment[:message], comment[:severity]
42
+ message = +"[#{comment[:source]}] "
43
+ message << "#{comment[:rule]}: " if comment[:rule]
44
+ message << comment[:message]
45
+
46
+ draft.add_comment comment[:path],
47
+ comment[:position],
48
+ message,
49
+ comment[:severity]
43
50
  end
44
51
  end
45
52
 
@@ -47,7 +54,7 @@ module Gergich
47
54
  end
48
55
 
49
56
  def base_path
50
- @base_path ||= File.expand_path(GERGICH_GIT_PATH) + "/"
57
+ @base_path ||= "#{File.expand_path(GERGICH_GIT_PATH)}/"
51
58
  end
52
59
 
53
60
  def relativize(path)
@@ -75,7 +82,7 @@ module Gergich
75
82
  $stdout.puts line unless suppress_output
76
83
  output << line
77
84
  end
78
- output.join("")
85
+ output.join
79
86
  end
80
87
 
81
88
  def load_captor(format)
@@ -109,4 +116,4 @@ module Gergich
109
116
  end
110
117
  end
111
118
 
112
- Dir[File.dirname(__FILE__) + "/capture/*.rb"].sort.each { |file| require file }
119
+ Dir["#{File.dirname(__FILE__)}/capture/*.rb"].sort.each { |file| require file }
@@ -9,7 +9,9 @@ CI_TEST_ARGS = {
9
9
  { path: "foo.rb", position: 3, severity: "error", message: "ಠ_ಠ" },
10
10
  { path: "/COMMIT_MSG", position: 1, severity: "info", message: "cool story bro" },
11
11
  { path: "/COMMIT_MSG", severity: "info", message: "lol",
12
- position: { start_line: 1, start_character: 1, end_line: 1, end_character: 2 } }
12
+ position: { start_line: 1, start_character: 1, end_line: 1, end_character: 2 } },
13
+ { path: "/COMMIT_MSG", severity: "info", message: "more",
14
+ position: { start_line: 1, start_character: 5, end_line: 1, end_character: 5 } }
13
15
  ].to_json
14
16
  ],
15
17
  "label" => ["Code-Review", 1],
@@ -41,7 +43,7 @@ def run_ci_test!(all_commands)
41
43
 
42
44
  commands.each do |command, args = []|
43
45
  arglist = args.map { |arg| Shellwords.escape(arg.to_s) }
44
- output = `bin/gergich #{command} #{arglist.join(" ")} 2>&1`
46
+ output = `bundle exec gergich #{command} #{arglist.join(" ")} 2>&1`
45
47
  unless $CHILD_STATUS.success?
46
48
  error "`gergich citest` failed on step `#{command}`:\n\n#{output.gsub(/^/, ' ')}\n"
47
49
  end
@@ -109,8 +111,8 @@ commands["comment"] = {
109
111
  action: ->(comment_data) {
110
112
  comment_data = begin
111
113
  JSON.parse(comment_data)
112
- rescue JSON::ParserError
113
- error("Unable to parse <comment_data> json", "comment")
114
+ rescue JSON::ParserError
115
+ error("Unable to parse <comment_data> json", "comment")
114
116
  end
115
117
  comment_data = [comment_data] unless comment_data.is_a?(Array)
116
118
 
@@ -210,6 +212,7 @@ commands["capture"] = {
210
212
  * i18nliner
211
213
  * flake8
212
214
  * stylelint
215
+ * tsc
213
216
  * yamllint
214
217
  * custom:<path>:<class_name> - file path and ruby
215
218
  class_name of a custom formatter.
@@ -15,11 +15,10 @@ ERROR_DISTANCE = ENV.fetch("MASTER_BOUNCER_ERROR_DISTANCE", 100).to_i
15
15
 
16
16
  def potentially_mergeable_changes
17
17
  url = "/changes/?q=status:open+" \
18
- "p:#{PROJECT}+" \
19
- "label:Verified=1+" \
20
- "is:mergeable+" \
21
- "branch:master" \
22
- "&o=CURRENT_REVISION"
18
+ "p:#{PROJECT}+" \
19
+ "label:Verified=1+" \
20
+ "branch:master" \
21
+ "&o=CURRENT_REVISION"
23
22
  changes = Gergich::API.get(url)
24
23
  changes.reject { |c| c["subject"] =~ /\Awip($|\W)/i }
25
24
  end
@@ -62,7 +61,7 @@ def maybe_bounce_commit!(commit)
62
61
  # similarly, over time the same patchset will become more out of date,
63
62
  # so we allow_repost (so to speak) so we can add increasingly negative
64
63
  # reviews
65
- review.publish!(:allow_repost)
64
+ review.publish!(allow_repost: true)
66
65
  end
67
66
 
68
67
  commands = {}
data/lib/gergich/cli.rb CHANGED
@@ -12,7 +12,7 @@ def info(text)
12
12
  end
13
13
 
14
14
  def script_name
15
- $PROGRAM_NAME.sub(%r{.*\/}, "")
15
+ $PROGRAM_NAME.sub(%r{.*/}, "")
16
16
  end
17
17
 
18
18
  def usage(content = nil)
data/lib/gergich.rb CHANGED
@@ -51,15 +51,13 @@ module Gergich
51
51
  end
52
52
 
53
53
  def files
54
- @files ||= begin
55
- if Gergich.use_git?
56
- Gergich.git("diff-tree --no-commit-id --name-only -r #{ref}").split
57
- else
58
- raw = API.get("/changes/#{change_id}/revisions/#{revision_id}/patch", raw: true)
59
- Base64.decode64(raw)
60
- .scan(%r{^diff --git a/.*? b/(.*?)$})
61
- .flatten
62
- end
54
+ @files ||= if Gergich.use_git?
55
+ Gergich.git("diff-tree --no-commit-id --name-only -r #{ref}").split
56
+ else
57
+ raw = API.get("/changes/#{change_id}/revisions/#{revision_id}/patch", raw: true)
58
+ Base64.decode64(raw)
59
+ .scan(%r{^diff --git a/.*? b/(.*?)$})
60
+ .flatten
63
61
  end
64
62
  end
65
63
 
@@ -70,7 +68,7 @@ module Gergich
70
68
  def revision_number
71
69
  @revision_number ||= begin
72
70
  patchset_number = ENV["GERRIT_PATCHSET_NUMBER"]
73
- return patchset_number unless patchset_number.nil?
71
+ return patchset_number unless patchset_number.nil? # rubocop:disable Lint/NoReturnInBeginEndBlocks
74
72
 
75
73
  gerrit_info = API.get("/changes/?q=#{change_id}&o=ALL_REVISIONS")[0]
76
74
  raise GergichError, "Gerrit patchset not found" unless gerrit_info
@@ -97,7 +95,7 @@ module Gergich
97
95
  end
98
96
 
99
97
  # Public: publish all draft comments/labels/messages
100
- def publish!(allow_repost = false)
98
+ def publish!(allow_repost: false)
101
99
  # only publish if we have something to say or if our last score was negative
102
100
  return unless anything_to_publish?
103
101
 
@@ -200,13 +198,11 @@ module Gergich
200
198
  # currently, cover message only supports the GERGICH_REVIEW_LABEL.
201
199
  # i.e., even if gergich has "Code-Review: -2"
202
200
  def current_label
203
- @current_label ||= begin
204
- API.get("/changes/#{commit.change_id}/detail")["labels"]
205
- .fetch(GERGICH_REVIEW_LABEL, {})
206
- .fetch("all", [])
207
- .select { |label| label["username"] == GERGICH_USER }
208
- .first
209
- end
201
+ @current_label ||= API.get("/changes/#{commit.change_id}/detail")["labels"]
202
+ .fetch(GERGICH_REVIEW_LABEL, {})
203
+ .fetch("all", [])
204
+ .select { |label| label["username"] == GERGICH_USER }
205
+ .first
210
206
  end
211
207
 
212
208
  def current_label_date
@@ -232,7 +228,7 @@ module Gergich
232
228
  end
233
229
 
234
230
  def current_score
235
- current_label && current_label["value"] || 0
231
+ (current_label && current_label["value"]) || 0
236
232
  end
237
233
 
238
234
  def cover_message
@@ -314,7 +310,7 @@ module Gergich
314
310
  def base_uri
315
311
  @base_uri ||= \
316
312
  ENV["GERRIT_BASE_URL"] ||
317
- ENV.key?("GERRIT_HOST") && "https://#{ENV['GERRIT_HOST']}" ||
313
+ (ENV.key?("GERRIT_HOST") && "https://#{ENV['GERRIT_HOST']}") ||
318
314
  raise(GergichError, "need to set GERRIT_BASE_URL or GERRIT_HOST")
319
315
  end
320
316
 
@@ -338,7 +334,7 @@ module Gergich
338
334
 
339
335
  def prepare_options(options)
340
336
  options = {
341
- base_uri: base_uri + "/a"
337
+ base_uri: "#{base_uri}/a"
342
338
  }.merge(auth_config).merge(options)
343
339
  if options[:body]
344
340
  options[:headers] ||= {}
@@ -515,7 +511,7 @@ module Gergich
515
511
 
516
512
  def info
517
513
  @info ||= begin
518
- comments = Hash[inline_comments.map { |file| [file.path, file.to_a] }]
514
+ comments = inline_comments.map { |file| [file.path, file.to_a] }.to_h
519
515
 
520
516
  {
521
517
  comments: comments,
@@ -533,9 +529,9 @@ module Gergich
533
529
 
534
530
  def orphaned_message
535
531
  messages = ["NOTE: I couldn't create inline comments for everything. " \
536
- "Although this isn't technically part of your commit, you " \
537
- "should still check it out (i.e. side effects or auto-" \
538
- "generated from stuff you *did* change):"]
532
+ "Although this isn't technically part of your commit, you " \
533
+ "should still check it out (i.e. side effects or auto-" \
534
+ "generated from stuff you *did* change):"]
539
535
 
540
536
  other_comments.each do |file|
541
537
  file.comments.each do |position, comments|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gergich
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Jensen
8
- autorequire:
9
- bindir: bin
8
+ autorequire:
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-25 00:00:00.000000000 Z
11
+ date: 2023-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -86,28 +86,56 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.79.0
89
+ version: '1.21'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.79.0
96
+ version: '1.21'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop-rake
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.6'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.6'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop-rspec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.5'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2.5'
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: simplecov
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
129
  - - "~>"
102
130
  - !ruby/object:Gem::Version
103
- version: 0.17.1
131
+ version: 0.21.2
104
132
  type: :development
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
136
  - - "~>"
109
137
  - !ruby/object:Gem::Version
110
- version: 0.17.1
138
+ version: 0.21.2
111
139
  description: Gergich is a little command-line tool for wiring up linters to Gerrit
112
140
  so you can get nice inline comments right on the review
113
141
  email: jon@instructure.com
@@ -117,12 +145,8 @@ executables:
117
145
  extensions: []
118
146
  extra_rdoc_files: []
119
147
  files:
120
- - LICENSE
121
- - README.md
122
- - bin/check_coverage
123
- - bin/gergich
124
- - bin/master_bouncer
125
- - bin/run_tests.sh
148
+ - exe/gergich
149
+ - exe/master_bouncer
126
150
  - lib/gergich.rb
127
151
  - lib/gergich/capture.rb
128
152
  - lib/gergich/capture/androidlint_capture.rb
@@ -134,30 +158,16 @@ files:
134
158
  - lib/gergich/capture/shellcheck_capture.rb
135
159
  - lib/gergich/capture/stylelint_capture.rb
136
160
  - lib/gergich/capture/swiftlint_capture.rb
161
+ - lib/gergich/capture/tsc_capture.rb
137
162
  - lib/gergich/capture/yamllint_capture.rb
138
163
  - lib/gergich/cli.rb
139
164
  - lib/gergich/cli/gergich.rb
140
165
  - lib/gergich/cli/master_bouncer.rb
141
- - spec/gergich/capture/androidlint_capture_spec.rb
142
- - spec/gergich/capture/brakeman_capture_spec.rb
143
- - spec/gergich/capture/custom_capture_spec.rb
144
- - spec/gergich/capture/eslint_capture_spec.rb
145
- - spec/gergich/capture/flake8_capture_spec.rb
146
- - spec/gergich/capture/i18nliner_capture_spec.rb
147
- - spec/gergich/capture/rubocop_capture_spec.rb
148
- - spec/gergich/capture/shellcheck_capture_spec.rb
149
- - spec/gergich/capture/stylelint_capture_spec.rb
150
- - spec/gergich/capture/swiftlint_capture_spec.rb
151
- - spec/gergich/capture/yamllint_capture_spec.rb
152
- - spec/gergich/capture_spec.rb
153
- - spec/gergich_spec.rb
154
- - spec/spec_helper.rb
155
- - spec/support/capture_shared_examples.rb
156
166
  homepage: https://github.com/instructure/gergich
157
167
  licenses:
158
168
  - MIT
159
169
  metadata: {}
160
- post_install_message:
170
+ post_install_message:
161
171
  rdoc_options: []
162
172
  require_paths:
163
173
  - lib
@@ -165,15 +175,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
165
175
  requirements:
166
176
  - - ">="
167
177
  - !ruby/object:Gem::Version
168
- version: 2.4.0
178
+ version: '2.5'
169
179
  required_rubygems_version: !ruby/object:Gem::Requirement
170
180
  requirements:
171
181
  - - ">="
172
182
  - !ruby/object:Gem::Version
173
183
  version: '0'
174
184
  requirements: []
175
- rubygems_version: 3.2.24
176
- signing_key:
185
+ rubygems_version: 3.1.6
186
+ signing_key:
177
187
  specification_version: 4
178
188
  summary: Command-line tool for adding Gerrit comments
179
189
  test_files: []
data/LICENSE DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2015-2016 Instructure, Inc.
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.