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.
- checksums.yaml +4 -4
- data/{bin → exe}/gergich +0 -0
- data/{bin → exe}/master_bouncer +0 -0
- data/lib/gergich/capture/androidlint_capture.rb +8 -3
- data/lib/gergich/capture/brakeman_capture.rb +3 -2
- data/lib/gergich/capture/eslint_capture.rb +2 -1
- data/lib/gergich/capture/flake8_capture.rb +1 -1
- data/lib/gergich/capture/i18nliner_capture.rb +1 -1
- data/lib/gergich/capture/rubocop_capture.rb +19 -3
- data/lib/gergich/capture/shellcheck_capture.rb +2 -1
- data/lib/gergich/capture/stylelint_capture.rb +2 -5
- data/lib/gergich/capture/swiftlint_capture.rb +1 -1
- data/lib/gergich/capture/tsc_capture.rb +27 -0
- data/lib/gergich/capture/yamllint_capture.rb +8 -2
- data/lib/gergich/capture.rb +12 -5
- data/lib/gergich/cli/gergich.rb +7 -4
- data/lib/gergich/cli/master_bouncer.rb +5 -6
- data/lib/gergich/cli.rb +1 -1
- data/lib/gergich.rb +21 -25
- metadata +43 -33
- data/LICENSE +0 -20
- data/README.md +0 -178
- data/bin/check_coverage +0 -8
- data/bin/run_tests.sh +0 -22
- data/spec/gergich/capture/androidlint_capture_spec.rb +0 -61
- data/spec/gergich/capture/brakeman_capture_spec.rb +0 -91
- data/spec/gergich/capture/custom_capture_spec.rb +0 -41
- data/spec/gergich/capture/eslint_capture_spec.rb +0 -31
- data/spec/gergich/capture/flake8_capture_spec.rb +0 -23
- data/spec/gergich/capture/i18nliner_capture_spec.rb +0 -25
- data/spec/gergich/capture/rubocop_capture_spec.rb +0 -75
- data/spec/gergich/capture/shellcheck_capture_spec.rb +0 -83
- data/spec/gergich/capture/stylelint_capture_spec.rb +0 -54
- data/spec/gergich/capture/swiftlint_capture_spec.rb +0 -42
- data/spec/gergich/capture/yamllint_capture_spec.rb +0 -31
- data/spec/gergich/capture_spec.rb +0 -75
- data/spec/gergich_spec.rb +0 -396
- data/spec/spec_helper.rb +0 -92
- data/spec/support/capture_shared_examples.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2266d14e8768ee3abd861d8ea5783ccec76f2d739a7f47714a716d2b2633d315
|
4
|
+
data.tar.gz: 117e4a786302fb5f1f8edb314dcbf610bac9509c088fb2187eed12e66b27b8ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3e834a5eae2e31b72820880ffbcb6b3dfd2ead64d03e774f322a63b0758a9dad48eb51c24ed9e6cd0fb5d598c91b1d042b3034df41d8c417e6406636370ee058
|
7
|
+
data.tar.gz: 8eb5874994069df2ef550b86ad41377ae37f9cf1f2ef9a54769cc29279a0e1f899447a66f36c5c069b4265210f888696d906fbe6e3d1d13407b4bea6e8060f1a
|
data/{bin → exe}/gergich
RENAMED
File without changes
|
data/{bin → exe}/master_bouncer
RENAMED
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"
|
38
|
-
{
|
39
|
-
|
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 = "
|
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: "
|
19
|
+
{ path: file, message: error, source: "eslint", position: line.to_i,
|
20
|
+
severity: severity }
|
20
21
|
}
|
21
22
|
}.compact.flatten
|
22
23
|
end
|
@@ -16,7 +16,7 @@ module Gergich
|
|
16
16
|
line = Regexp.last_match[1]
|
17
17
|
""
|
18
18
|
end
|
19
|
-
{ path: file, message: "
|
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
|
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:
|
59
|
-
|
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
|
@@ -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:
|
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: "
|
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
|
-
|
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
|
-
{
|
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
|
data/lib/gergich/capture.rb
CHANGED
@@ -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
|
-
|
42
|
-
|
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__)
|
119
|
+
Dir["#{File.dirname(__FILE__)}/capture/*.rb"].sort.each { |file| require file }
|
data/lib/gergich/cli/gergich.rb
CHANGED
@@ -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 = `
|
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
|
-
|
113
|
-
|
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
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
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!(:
|
64
|
+
review.publish!(allow_repost: true)
|
66
65
|
end
|
67
66
|
|
68
67
|
commands = {}
|
data/lib/gergich/cli.rb
CHANGED
data/lib/gergich.rb
CHANGED
@@ -51,15 +51,13 @@ module Gergich
|
|
51
51
|
end
|
52
52
|
|
53
53
|
def files
|
54
|
-
@files ||=
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
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
|
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 ||=
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
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
|
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 =
|
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
|
-
|
537
|
-
|
538
|
-
|
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.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Jensen
|
8
|
-
autorequire:
|
9
|
-
bindir:
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
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:
|
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:
|
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.
|
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.
|
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
|
-
-
|
121
|
-
-
|
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.
|
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.
|
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.
|