gergich 0.2.2 → 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 +5 -5
- data/bin/check_coverage +2 -1
- data/bin/gergich +1 -0
- data/bin/master_bouncer +1 -1
- data/bin/run_tests.sh +0 -5
- data/lib/gergich.rb +17 -23
- data/lib/gergich/capture.rb +6 -2
- data/lib/gergich/capture/androidlint_capture.rb +4 -0
- data/lib/gergich/capture/brakeman_capture.rb +4 -2
- data/lib/gergich/capture/eslint_capture.rb +2 -0
- data/lib/gergich/capture/flake8_capture.rb +2 -0
- data/lib/gergich/capture/i18nliner_capture.rb +2 -0
- data/lib/gergich/capture/rubocop_capture.rb +2 -0
- data/lib/gergich/capture/shellcheck_capture.rb +2 -0
- data/lib/gergich/capture/stylelint_capture.rb +6 -4
- data/lib/gergich/capture/swiftlint_capture.rb +4 -0
- data/lib/gergich/cli.rb +4 -2
- data/lib/gergich/cli/gergich.rb +119 -118
- data/lib/gergich/cli/master_bouncer.rb +16 -14
- data/spec/gergich/capture/androidlint_capture_spec.rb +14 -9
- data/spec/gergich/capture/brakeman_capture_spec.rb +43 -41
- data/spec/gergich/capture/custom_capture_spec.rb +4 -2
- data/spec/gergich/capture/eslint_capture_spec.rb +6 -4
- data/spec/gergich/capture/flake8_capture_spec.rb +4 -2
- data/spec/gergich/capture/i18nliner_capture_spec.rb +6 -4
- data/spec/gergich/capture/rubocop_capture_spec.rb +24 -22
- data/spec/gergich/capture/shellcheck_capture_spec.rb +45 -43
- data/spec/gergich/capture/stylelint_capture_spec.rb +9 -7
- data/spec/gergich/capture/swiftlint_capture_spec.rb +7 -4
- data/spec/gergich/capture_spec.rb +6 -4
- data/spec/gergich_spec.rb +43 -4
- data/spec/spec_helper.rb +2 -0
- data/spec/support/capture_shared_examples.rb +2 -0
- metadata +35 -35
@@ -1,15 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative "../../support/capture_shared_examples"
|
2
4
|
|
3
5
|
RSpec.describe Gergich::Capture::StylelintCapture do
|
4
6
|
let(:output) do
|
5
|
-
|
6
|
-
app/stylesheets/base/_print.scss
|
7
|
-
|
8
|
-
|
7
|
+
<<~OUTPUT
|
8
|
+
app/stylesheets/base/_print.scss
|
9
|
+
3:17 ✖ Unexpected invalid hex color "#owiehfi" color-no-invalid-hex
|
10
|
+
3:17 ⚠ Expected "#owiehfi" to be "#OWIEHFI" color-hex-case
|
9
11
|
|
10
|
-
app/stylesheets/base/_variables.scss
|
11
|
-
|
12
|
-
|
12
|
+
app/stylesheets/base/_variables.scss
|
13
|
+
2:15 ✖ Unexpected invalid hex color "#2D3B4" color-no-invalid-hex
|
14
|
+
30:15 ⚠ Expected "#2d3b4a" to be "#2D3B4A" color-hex-case
|
13
15
|
OUTPUT
|
14
16
|
end
|
15
17
|
let(:comments) do
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative "../../support/capture_shared_examples"
|
2
4
|
|
3
5
|
RSpec.describe Gergich::Capture::SwiftlintCapture do
|
@@ -5,11 +7,12 @@ RSpec.describe Gergich::Capture::SwiftlintCapture do
|
|
5
7
|
let(:colon_violation) { "Colon Violation: Colons should be next to the identifier when specifying a type. (colon)" }
|
6
8
|
let(:line_length_violation) { "Line Length Violation: Line should be 100 characters or less: currently 129 characters (line_length)" }
|
7
9
|
let(:force_cast_violation) { "Force Cast Violation: Force casts should be avoided. (force_cast)" }
|
10
|
+
# rubocop:enable Metrics/LineLength
|
8
11
|
let(:output) do
|
9
|
-
|
10
|
-
/path/to/My.swift:13:22: warning: #{colon_violation}
|
11
|
-
/path/to/Fail.swift:76: warning: #{line_length_violation}
|
12
|
-
/path/to/Cast.swift:15:9: error: #{force_cast_violation}
|
12
|
+
<<~OUTPUT
|
13
|
+
/path/to/My.swift:13:22: warning: #{colon_violation}
|
14
|
+
/path/to/Fail.swift:76: warning: #{line_length_violation}
|
15
|
+
/path/to/Cast.swift:15:9: error: #{force_cast_violation}
|
13
16
|
OUTPUT
|
14
17
|
end
|
15
18
|
let(:comments) do
|
@@ -1,13 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative "../../lib/gergich/capture"
|
2
4
|
|
3
5
|
RSpec.describe Gergich::Capture do
|
4
6
|
let!(:draft) { double }
|
5
7
|
|
6
8
|
let :output do
|
7
|
-
|
8
|
-
#{path}
|
9
|
-
|
10
|
-
OUTPUT
|
9
|
+
<<~OUTPUT
|
10
|
+
#{path}
|
11
|
+
4:21 error Missing semicolon semi
|
12
|
+
OUTPUT
|
11
13
|
end
|
12
14
|
|
13
15
|
before do
|
data/spec/gergich_spec.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
RSpec.describe Gergich::API do
|
2
4
|
context "bad change-id" do
|
3
5
|
let(:result) { double(:result, body: "Not Found: 1234") }
|
@@ -99,6 +101,11 @@ RSpec.describe Gergich::Draft do
|
|
99
101
|
expect(subject).to eq("foo.rb" => [{ line: 1, message: "[INFO] fix foo" }])
|
100
102
|
end
|
101
103
|
|
104
|
+
it "strips whitespace from filename" do
|
105
|
+
draft.add_comment " foo.rb\n", 1, "fix foo", "info"
|
106
|
+
expect(subject).to eq("foo.rb" => [{ line: 1, message: "[INFO] fix foo" }])
|
107
|
+
end
|
108
|
+
|
102
109
|
it "includes COMMIT_MSG comments" do
|
103
110
|
draft.add_comment "/COMMIT_MSG", 1, "fix commit", "info"
|
104
111
|
expect(subject).to eq("/COMMIT_MSG" => [{ line: 1, message: "[INFO] fix commit" }])
|
@@ -210,16 +217,18 @@ RSpec.describe Gergich::Draft do
|
|
210
217
|
end
|
211
218
|
|
212
219
|
RSpec.describe Gergich::Review do
|
220
|
+
let(:change_id) { "test" }
|
213
221
|
let!(:commit) do
|
214
222
|
double(
|
215
223
|
:commit,
|
224
|
+
change_id: change_id,
|
216
225
|
files: [
|
217
226
|
"foo.rb",
|
218
227
|
"bar/baz.lol"
|
219
228
|
],
|
220
|
-
|
221
|
-
|
222
|
-
|
229
|
+
info: {},
|
230
|
+
revision_id: change_id,
|
231
|
+
revision_number: 1
|
223
232
|
)
|
224
233
|
end
|
225
234
|
let!(:draft) do
|
@@ -231,6 +240,37 @@ RSpec.describe Gergich::Review do
|
|
231
240
|
draft.reset!
|
232
241
|
end
|
233
242
|
|
243
|
+
describe "#status" do
|
244
|
+
subject { review.status }
|
245
|
+
|
246
|
+
context "nothing to publish" do
|
247
|
+
before :each do
|
248
|
+
allow(review).to receive(:anything_to_publish?).and_return(false)
|
249
|
+
end
|
250
|
+
it { expect { subject }.to output(include("Nothing to publish")).to_stdout }
|
251
|
+
end
|
252
|
+
|
253
|
+
context "something to publish" do
|
254
|
+
before :each do
|
255
|
+
allow(review).to receive(:anything_to_publish?).and_return(true)
|
256
|
+
allow(review).to receive(:already_commented?).and_return(false)
|
257
|
+
allow(review).to receive(:generate_payload).and_return({})
|
258
|
+
allow(review).to receive(:my_messages).and_return([])
|
259
|
+
end
|
260
|
+
it {
|
261
|
+
expected_outputs = [
|
262
|
+
"Project:",
|
263
|
+
"Branch:",
|
264
|
+
"Revision:",
|
265
|
+
"ChangeId: #{change_id}",
|
266
|
+
"Files:"
|
267
|
+
# There's more... but this is good
|
268
|
+
]
|
269
|
+
expect { subject }.to output(include(*expected_outputs)).to_stdout
|
270
|
+
}
|
271
|
+
end
|
272
|
+
end
|
273
|
+
|
234
274
|
describe "#publish!" do
|
235
275
|
context "nothing to publish" do
|
236
276
|
before :each do
|
@@ -253,7 +293,6 @@ RSpec.describe Gergich::Review do
|
|
253
293
|
|
254
294
|
it "publishes via the api" do
|
255
295
|
expect(Gergich::API).to receive(:post)
|
256
|
-
allow(review).to receive(:change_name?).and_return(false)
|
257
296
|
review.publish!
|
258
297
|
end
|
259
298
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,99 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gergich
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Jensen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-08-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: httparty
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '0.16'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '0.16'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: sqlite3
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '1.3'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '1.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '12.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '12.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '3.5'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '3.5'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rubocop
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - ~>
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
75
|
+
version: '0.49'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
82
|
+
version: '0.49'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: simplecov
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - ~>
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
89
|
+
version: 0.16.0
|
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.
|
96
|
+
version: 0.16.0
|
97
97
|
description: Gergich is a little command-line tool for wiring up linters to Gerrit
|
98
98
|
so you can get nice inline comments right on the review
|
99
99
|
email: jon@instructure.com
|
@@ -105,6 +105,12 @@ extra_rdoc_files: []
|
|
105
105
|
files:
|
106
106
|
- LICENSE
|
107
107
|
- README.md
|
108
|
+
- bin/check_coverage
|
109
|
+
- bin/gergich
|
110
|
+
- bin/master_bouncer
|
111
|
+
- bin/run_tests.sh
|
112
|
+
- lib/gergich.rb
|
113
|
+
- lib/gergich/capture.rb
|
108
114
|
- lib/gergich/capture/androidlint_capture.rb
|
109
115
|
- lib/gergich/capture/brakeman_capture.rb
|
110
116
|
- lib/gergich/capture/eslint_capture.rb
|
@@ -114,11 +120,9 @@ files:
|
|
114
120
|
- lib/gergich/capture/shellcheck_capture.rb
|
115
121
|
- lib/gergich/capture/stylelint_capture.rb
|
116
122
|
- lib/gergich/capture/swiftlint_capture.rb
|
117
|
-
- lib/gergich/
|
123
|
+
- lib/gergich/cli.rb
|
118
124
|
- lib/gergich/cli/gergich.rb
|
119
125
|
- lib/gergich/cli/master_bouncer.rb
|
120
|
-
- lib/gergich/cli.rb
|
121
|
-
- lib/gergich.rb
|
122
126
|
- spec/gergich/capture/androidlint_capture_spec.rb
|
123
127
|
- spec/gergich/capture/brakeman_capture_spec.rb
|
124
128
|
- spec/gergich/capture/custom_capture_spec.rb
|
@@ -133,10 +137,6 @@ files:
|
|
133
137
|
- spec/gergich_spec.rb
|
134
138
|
- spec/spec_helper.rb
|
135
139
|
- spec/support/capture_shared_examples.rb
|
136
|
-
- bin/check_coverage
|
137
|
-
- bin/gergich
|
138
|
-
- bin/master_bouncer
|
139
|
-
- bin/run_tests.sh
|
140
140
|
homepage: https://github.com/instructure/gergich
|
141
141
|
licenses:
|
142
142
|
- MIT
|
@@ -147,17 +147,17 @@ require_paths:
|
|
147
147
|
- lib
|
148
148
|
required_ruby_version: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- -
|
150
|
+
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
152
|
+
version: 2.4.0
|
153
153
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
154
|
requirements:
|
155
|
-
- -
|
155
|
+
- - ">="
|
156
156
|
- !ruby/object:Gem::Version
|
157
157
|
version: '0'
|
158
158
|
requirements: []
|
159
159
|
rubyforge_project:
|
160
|
-
rubygems_version: 2.
|
160
|
+
rubygems_version: 2.7.6.2
|
161
161
|
signing_key:
|
162
162
|
specification_version: 4
|
163
163
|
summary: Command-line tool for adding Gerrit comments
|