overcommit 0.32.0.rc1 → 0.32.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/default.yml +109 -94
- data/lib/overcommit/exceptions.rb +3 -0
- data/lib/overcommit/git_repo.rb +6 -0
- data/lib/overcommit/hook/base.rb +13 -3
- data/lib/overcommit/hook/commit_msg/message_format.rb +27 -0
- data/lib/overcommit/hook/pre_commit/base.rb +13 -7
- data/lib/overcommit/hook/pre_commit/es_lint.rb +10 -0
- data/lib/overcommit/hook/pre_commit/execute_permissions.rb +10 -0
- data/lib/overcommit/hook/pre_commit/forbidden_branches.rb +24 -0
- data/lib/overcommit/hook/pre_commit/scss_lint.rb +23 -10
- data/lib/overcommit/hook/pre_push/minitest.rb +4 -0
- data/lib/overcommit/hook_context/base.rb +7 -0
- data/lib/overcommit/hook_context/pre_commit.rb +7 -0
- data/lib/overcommit/hook_context/run_all.rb +1 -1
- data/lib/overcommit/hook_runner.rb +3 -0
- data/lib/overcommit/version.rb +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e0c2c570d206163b748a1aefa226cacfbe1987a6
|
4
|
+
data.tar.gz: fd391b54a75ca207031562fc896d2dfa57494088
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df5aecb87481a132a0fc6b0d5ee0ac651a9ca74ba962a0563fc66b5a5583d19aad33293e25bd71626aecbdfe186d7af0e2be1bbda440c8ec2ffc5b5c4507dc8e
|
7
|
+
data.tar.gz: d2eb883b0d1bb0bfd0a4b970150e466eb5a5fe5631d49d876b8c9b751463120efb99a9c788c2079b6907679dbc778b6ab780fed382c14d510df702ee406988da
|
data/config/default.yml
CHANGED
@@ -62,46 +62,53 @@ CommitMsg:
|
|
62
62
|
|
63
63
|
CapitalizedSubject:
|
64
64
|
enabled: true
|
65
|
-
description: '
|
65
|
+
description: 'Check subject capitalization'
|
66
66
|
|
67
67
|
EmptyMessage:
|
68
68
|
enabled: true
|
69
|
-
description: '
|
69
|
+
description: 'Check for empty commit message'
|
70
70
|
quiet: true
|
71
71
|
|
72
72
|
GerritChangeId:
|
73
73
|
enabled: false
|
74
|
-
description: '
|
74
|
+
description: 'Ensure Gerrit Change-Id is present'
|
75
75
|
required: true
|
76
76
|
|
77
77
|
HardTabs:
|
78
78
|
enabled: false
|
79
|
-
description: '
|
79
|
+
description: 'Check for hard tabs'
|
80
|
+
|
81
|
+
MessageFormat:
|
82
|
+
enabled: false
|
83
|
+
description: 'Check commit message matches expected pattern'
|
84
|
+
pattern: '(.+)[|](.+)[|](.+)'
|
85
|
+
expected_pattern_message: '<Issue Id> | <Commit Message Description> | <Developer(s)>'
|
86
|
+
sample_message: 'DEFECT-1234 | Refactored Onboarding flow | John Doe'
|
80
87
|
|
81
88
|
RussianNovel:
|
82
89
|
enabled: false
|
83
|
-
description: '
|
90
|
+
description: 'Check length of commit message'
|
84
91
|
quiet: true
|
85
92
|
|
86
93
|
SingleLineSubject:
|
87
94
|
enabled: true
|
88
|
-
description: '
|
95
|
+
description: 'Check subject line'
|
89
96
|
|
90
97
|
SpellCheck:
|
91
98
|
enabled: false
|
92
|
-
description: '
|
99
|
+
description: 'Check for misspelled words'
|
93
100
|
required_executable: 'hunspell'
|
94
101
|
flags: ['-a']
|
95
102
|
|
96
103
|
TextWidth:
|
97
104
|
enabled: true
|
98
|
-
description: '
|
105
|
+
description: 'Check text width'
|
99
106
|
max_subject_width: 60
|
100
107
|
max_body_width: 72
|
101
108
|
|
102
109
|
TrailingPeriod:
|
103
110
|
enabled: true
|
104
|
-
description: '
|
111
|
+
description: 'Check for trailing periods in subject'
|
105
112
|
|
106
113
|
# Hooks that are run after `git commit` is executed, before the commit message
|
107
114
|
# editor is displayed. These hooks are ideal for syntax checkers, linters, and
|
@@ -116,7 +123,7 @@ PreCommit:
|
|
116
123
|
|
117
124
|
AuthorEmail:
|
118
125
|
enabled: true
|
119
|
-
description: '
|
126
|
+
description: 'Check author email'
|
120
127
|
requires_files: false
|
121
128
|
required: true
|
122
129
|
quiet: true
|
@@ -124,14 +131,14 @@ PreCommit:
|
|
124
131
|
|
125
132
|
AuthorName:
|
126
133
|
enabled: true
|
127
|
-
description: '
|
134
|
+
description: 'Check for author name'
|
128
135
|
requires_files: false
|
129
136
|
required: true
|
130
137
|
quiet: true
|
131
138
|
|
132
139
|
BerksfileCheck:
|
133
140
|
enabled: false
|
134
|
-
description: '
|
141
|
+
description: 'Check Berksfile lock'
|
135
142
|
required_executable: 'berks'
|
136
143
|
flags: ['list', '--quiet']
|
137
144
|
install_command: 'gem install berks'
|
@@ -141,7 +148,7 @@ PreCommit:
|
|
141
148
|
|
142
149
|
Brakeman:
|
143
150
|
enabled: false
|
144
|
-
description: '
|
151
|
+
description: 'Check for security vulnerabilities'
|
145
152
|
required_executable: 'brakeman'
|
146
153
|
flags: ['--exit-on-warn', '--quiet', '--summary', '--only-files']
|
147
154
|
install_command: 'gem install brakeman'
|
@@ -150,12 +157,12 @@ PreCommit:
|
|
150
157
|
|
151
158
|
BrokenSymlinks:
|
152
159
|
enabled: true
|
153
|
-
description: '
|
160
|
+
description: 'Check for broken symlinks'
|
154
161
|
quiet: true
|
155
162
|
|
156
163
|
BundleCheck:
|
157
164
|
enabled: false
|
158
|
-
description: '
|
165
|
+
description: 'Check Gemfile dependencies'
|
159
166
|
required_executable: 'bundle'
|
160
167
|
flags: ['check']
|
161
168
|
install_command: 'gem install bundler'
|
@@ -166,12 +173,12 @@ PreCommit:
|
|
166
173
|
|
167
174
|
CaseConflicts:
|
168
175
|
enabled: true
|
169
|
-
description: '
|
176
|
+
description: 'Check for case-insensitivity conflicts'
|
170
177
|
quiet: true
|
171
178
|
|
172
179
|
ChamberSecurity:
|
173
180
|
enabled: false
|
174
|
-
description: '
|
181
|
+
description: 'Check that settings have been secured with Chamber'
|
175
182
|
required_executable: 'chamber'
|
176
183
|
flags: ['secure', '--files']
|
177
184
|
install_command: 'gem install chamber'
|
@@ -181,7 +188,7 @@ PreCommit:
|
|
181
188
|
|
182
189
|
CoffeeLint:
|
183
190
|
enabled: false
|
184
|
-
description: '
|
191
|
+
description: 'Analyze with coffeelint'
|
185
192
|
required_executable: 'coffeelint'
|
186
193
|
flags: ['--reporter=csv']
|
187
194
|
install_command: 'npm install -g coffeelint'
|
@@ -189,7 +196,7 @@ PreCommit:
|
|
189
196
|
|
190
197
|
CssLint:
|
191
198
|
enabled: false
|
192
|
-
description: '
|
199
|
+
description: 'Analyze with csslint'
|
193
200
|
required_executable: 'csslint'
|
194
201
|
flags: ['--quiet', '--format=compact']
|
195
202
|
install_command: 'npm install -g csslint'
|
@@ -197,7 +204,7 @@ PreCommit:
|
|
197
204
|
|
198
205
|
Dogma:
|
199
206
|
enabled: false
|
200
|
-
description: '
|
207
|
+
description: 'Analyze with dogma'
|
201
208
|
required_executable: 'mix'
|
202
209
|
flags: ['dogma']
|
203
210
|
include:
|
@@ -206,7 +213,7 @@ PreCommit:
|
|
206
213
|
|
207
214
|
EsLint:
|
208
215
|
enabled: false
|
209
|
-
description: '
|
216
|
+
description: 'Analyze with ESLint'
|
210
217
|
required_executable: 'eslint'
|
211
218
|
flags: ['--format=compact']
|
212
219
|
install_command: 'npm install -g eslint'
|
@@ -214,19 +221,25 @@ PreCommit:
|
|
214
221
|
|
215
222
|
ExecutePermissions:
|
216
223
|
enabled: false
|
217
|
-
description: '
|
224
|
+
description: 'Check for file execute permissions'
|
225
|
+
quiet: true
|
226
|
+
|
227
|
+
ForbiddenBranches:
|
228
|
+
enabled: false
|
229
|
+
description: 'Check for commit to forbidden branch'
|
218
230
|
quiet: true
|
231
|
+
branch_patterns: ['master']
|
219
232
|
|
220
233
|
GoLint:
|
221
234
|
enabled: false
|
222
|
-
description: '
|
235
|
+
description: 'Analyze with golint'
|
223
236
|
required_executable: 'golint'
|
224
237
|
install_command: 'go get github.com/golang/lint/golint'
|
225
238
|
include: '**/*.go'
|
226
239
|
|
227
240
|
GoVet:
|
228
241
|
enabled: false
|
229
|
-
description: '
|
242
|
+
description: 'Analyze with go vet'
|
230
243
|
required_executable: 'go'
|
231
244
|
flags: ['tool', 'vet']
|
232
245
|
install_command: 'go get golang.org/x/tools/cmd/vet'
|
@@ -234,42 +247,42 @@ PreCommit:
|
|
234
247
|
|
235
248
|
HamlLint:
|
236
249
|
enabled: false
|
237
|
-
description: '
|
250
|
+
description: 'Analyze with haml-lint'
|
238
251
|
required_executable: 'haml-lint'
|
239
252
|
install_command: 'gem install haml-lint'
|
240
253
|
include: '**/*.haml'
|
241
254
|
|
242
255
|
HardTabs:
|
243
256
|
enabled: false
|
244
|
-
description: '
|
257
|
+
description: 'Check for hard tabs'
|
245
258
|
quiet: true
|
246
259
|
required_executable: 'grep'
|
247
260
|
flags: ['-IHn', "\t"]
|
248
261
|
|
249
262
|
Hlint:
|
250
263
|
enabled: false
|
251
|
-
description: '
|
264
|
+
description: 'Analyze with hlint'
|
252
265
|
required_executable: 'hlint'
|
253
266
|
install_command: 'cabal install hlint'
|
254
267
|
include: '**/*.hs'
|
255
268
|
|
256
269
|
HtmlHint:
|
257
270
|
enabled: false
|
258
|
-
description: '
|
271
|
+
description: 'Analyze with HTMLHint'
|
259
272
|
required_executable: 'htmlhint'
|
260
273
|
install_command: 'npm install -g htmlhint'
|
261
274
|
include: '**/*.html'
|
262
275
|
|
263
276
|
HtmlTidy:
|
264
277
|
enabled: false
|
265
|
-
description: '
|
278
|
+
description: 'Analyze HTML with tidy'
|
266
279
|
required_executable: 'tidy'
|
267
280
|
flags: ['-errors', '-quiet', '-utf8']
|
268
281
|
include: '**/*.html'
|
269
282
|
|
270
283
|
ImageOptim:
|
271
284
|
enabled: false
|
272
|
-
description: '
|
285
|
+
description: 'Check for optimizable images'
|
273
286
|
required_executable: 'image_optim'
|
274
287
|
install_command: 'gem install image_optim'
|
275
288
|
include:
|
@@ -281,14 +294,14 @@ PreCommit:
|
|
281
294
|
|
282
295
|
JavaCheckstyle:
|
283
296
|
enabled: false
|
284
|
-
description: '
|
297
|
+
description: 'Analyze with checkstyle'
|
285
298
|
required_executable: 'checkstyle'
|
286
299
|
flags: ['-c', '/sun_checks.xml']
|
287
300
|
include: '**/*.java'
|
288
301
|
|
289
302
|
Jscs:
|
290
303
|
enabled: false
|
291
|
-
description: '
|
304
|
+
description: 'Analyze with JSCS'
|
292
305
|
required_executable: 'jscs'
|
293
306
|
flags: ['--reporter=inline', '--verbose']
|
294
307
|
install_command: 'npm install -g jscs'
|
@@ -296,7 +309,7 @@ PreCommit:
|
|
296
309
|
|
297
310
|
JsHint:
|
298
311
|
enabled: false
|
299
|
-
description: '
|
312
|
+
description: 'Analyze with JSHint'
|
300
313
|
required_executable: 'jshint'
|
301
314
|
flags: ['--verbose']
|
302
315
|
install_command: 'npm install -g jshint'
|
@@ -304,7 +317,7 @@ PreCommit:
|
|
304
317
|
|
305
318
|
JsLint:
|
306
319
|
enabled: false
|
307
|
-
description: '
|
320
|
+
description: 'Analyze with JSLint'
|
308
321
|
required_executable: 'jslint'
|
309
322
|
flags: ['--terse']
|
310
323
|
install_command: 'npm install -g jslint'
|
@@ -312,63 +325,63 @@ PreCommit:
|
|
312
325
|
|
313
326
|
Jsl:
|
314
327
|
enabled: false
|
315
|
-
description: '
|
328
|
+
description: 'Analyze with JSL'
|
316
329
|
required_executable: 'jsl'
|
317
330
|
flags: ['-nologo', '-nofilelisting', '-nocontext', '-nosummary']
|
318
331
|
include: '**/*.js'
|
319
332
|
|
320
333
|
JsonSyntax:
|
321
334
|
enabled: false
|
322
|
-
description: '
|
335
|
+
description: 'Validate JSON syntax'
|
323
336
|
required_library: 'json'
|
324
337
|
install_command: 'gem install json'
|
325
338
|
include: '**/*.json'
|
326
339
|
|
327
340
|
LocalPathsInGemfile:
|
328
341
|
enabled: false
|
329
|
-
description: '
|
342
|
+
description: 'Check for local paths in Gemfile'
|
330
343
|
required_executable: 'grep'
|
331
344
|
flags: ['-IHnE', "^[^#]*((\\bpath:)|(:path[ \t]*=>))"]
|
332
345
|
include: '**/Gemfile'
|
333
346
|
|
334
347
|
Mdl:
|
335
348
|
enabled: false
|
336
|
-
description: '
|
349
|
+
description: 'Analyze with mdl'
|
337
350
|
required_executable: 'mdl'
|
338
351
|
install_command: 'gem install mdl'
|
339
352
|
include: '**/*.md'
|
340
353
|
|
341
354
|
MergeConflicts:
|
342
355
|
enabled: true
|
343
|
-
description: '
|
356
|
+
description: 'Check for merge conflicts'
|
344
357
|
quiet: true
|
345
358
|
required_executable: 'grep'
|
346
359
|
flags: ['-IHn', "^<<<<<<<[ \t]"]
|
347
360
|
|
348
361
|
NginxTest:
|
349
362
|
enabled: false
|
350
|
-
description: '
|
363
|
+
description: 'Test nginx configs'
|
351
364
|
required_executable: 'nginx'
|
352
365
|
flags: ['-t']
|
353
366
|
include: '**/nginx.conf'
|
354
367
|
|
355
368
|
Pep257:
|
356
369
|
enabled: false
|
357
|
-
description: '
|
370
|
+
description: 'Analyze docstrings with pep257'
|
358
371
|
required_executable: 'pep257'
|
359
372
|
install_command: 'pip install pep257'
|
360
373
|
include: '**/*.py'
|
361
374
|
|
362
375
|
Pep8:
|
363
376
|
enabled: false
|
364
|
-
description: '
|
377
|
+
description: 'Analyze with pep8'
|
365
378
|
required_executable: 'pep8'
|
366
379
|
install_command: 'pip install pep8'
|
367
380
|
include: '**/*.py'
|
368
381
|
|
369
382
|
PuppetLint:
|
370
383
|
enabled: false
|
371
|
-
description: '
|
384
|
+
description: 'Analyze with puppet-lint'
|
372
385
|
required_executable: 'puppet-lint'
|
373
386
|
install_command: 'gem install puppet-lint'
|
374
387
|
flags:
|
@@ -379,14 +392,14 @@ PreCommit:
|
|
379
392
|
|
380
393
|
Pyflakes:
|
381
394
|
enabled: false
|
382
|
-
description: '
|
395
|
+
description: 'Analyze with pyflakes'
|
383
396
|
required_executable: 'pyflakes'
|
384
397
|
install_command: 'pip install pyflakes'
|
385
398
|
include: '**/*.py'
|
386
399
|
|
387
400
|
Pylint:
|
388
401
|
enabled: false
|
389
|
-
description: '
|
402
|
+
description: 'Analyze with Pylint'
|
390
403
|
required_executable: 'pylint'
|
391
404
|
install_command: 'pip install pylint'
|
392
405
|
flags:
|
@@ -397,21 +410,21 @@ PreCommit:
|
|
397
410
|
|
398
411
|
PythonFlake8:
|
399
412
|
enabled: false
|
400
|
-
description: '
|
413
|
+
description: 'Analyze with flake8'
|
401
414
|
required_executable: 'flake8'
|
402
415
|
install_command: 'pip install flake8'
|
403
416
|
include: '**/*.py'
|
404
417
|
|
405
418
|
RailsBestPractices:
|
406
419
|
enabled: false
|
407
|
-
description: '
|
420
|
+
description: 'Analyze with RailsBestPractices'
|
408
421
|
required_executable: 'rails_best_practices'
|
409
422
|
flags: ['--without-color']
|
410
423
|
install_command: 'gem install rails_best_practices'
|
411
424
|
|
412
425
|
RailsSchemaUpToDate:
|
413
426
|
enabled: false
|
414
|
-
description: '
|
427
|
+
description: 'Check if database schema is up to date'
|
415
428
|
include:
|
416
429
|
- 'db/migrate/*.rb'
|
417
430
|
- 'db/schema.rb'
|
@@ -419,7 +432,7 @@ PreCommit:
|
|
419
432
|
|
420
433
|
Reek:
|
421
434
|
enabled: false
|
422
|
-
description: '
|
435
|
+
description: 'Analyze with Reek'
|
423
436
|
required_executable: 'reek'
|
424
437
|
flags: ['--single-line', '--no-color']
|
425
438
|
install_command: 'gem install reek'
|
@@ -432,7 +445,7 @@ PreCommit:
|
|
432
445
|
|
433
446
|
RuboCop:
|
434
447
|
enabled: false
|
435
|
-
description: '
|
448
|
+
description: 'Analyze with RuboCop'
|
436
449
|
required_executable: 'rubocop'
|
437
450
|
flags: ['--format=emacs', '--force-exclusion', '--display-cop-names']
|
438
451
|
install_command: 'gem install rubocop'
|
@@ -445,7 +458,7 @@ PreCommit:
|
|
445
458
|
|
446
459
|
RubyLint:
|
447
460
|
enabled: false
|
448
|
-
description: '
|
461
|
+
description: 'Analyze with ruby-lint'
|
449
462
|
required_executable: 'ruby-lint'
|
450
463
|
flags: ['--presenter=syntastic', '--levels=error,warning']
|
451
464
|
install_command: 'gem install ruby-lint'
|
@@ -455,27 +468,29 @@ PreCommit:
|
|
455
468
|
|
456
469
|
Scalariform:
|
457
470
|
enabled: false
|
458
|
-
description: '
|
471
|
+
description: 'Check formatting with Scalariform'
|
459
472
|
required_executable: 'scalariform'
|
460
473
|
flags: ['--test']
|
461
474
|
include: '**/*.scala'
|
462
475
|
|
463
476
|
Scalastyle:
|
464
477
|
enabled: false
|
465
|
-
description: '
|
478
|
+
description: 'Analyze with Scalastyle'
|
466
479
|
required_executable: 'scalastyle'
|
467
480
|
include: '**/*.scala'
|
468
481
|
|
469
482
|
ScssLint:
|
470
483
|
enabled: false
|
471
|
-
description: '
|
484
|
+
description: 'Analyze with scss-lint'
|
485
|
+
required_library: 'json'
|
472
486
|
required_executable: 'scss-lint'
|
487
|
+
flags: ['--format', 'JSON']
|
473
488
|
install_command: 'gem install scss-lint'
|
474
489
|
include: '**/*.scss'
|
475
490
|
|
476
491
|
SemiStandard:
|
477
492
|
enabled: false
|
478
|
-
description: '
|
493
|
+
description: 'Analyze with semistandard'
|
479
494
|
required_executable: 'semistandard'
|
480
495
|
flags: ['--verbose']
|
481
496
|
install_command: 'npm install -g semistandard'
|
@@ -483,28 +498,28 @@ PreCommit:
|
|
483
498
|
|
484
499
|
ShellCheck:
|
485
500
|
enabled: false
|
486
|
-
description: '
|
501
|
+
description: 'Analyze with ShellCheck'
|
487
502
|
required_executable: 'shellcheck'
|
488
503
|
flags: ['--format=gcc']
|
489
504
|
include: '**/*.sh'
|
490
505
|
|
491
506
|
SlimLint:
|
492
507
|
enabled: false
|
493
|
-
description: '
|
508
|
+
description: 'Analyze with slim-lint'
|
494
509
|
required_executable: 'slim-lint'
|
495
510
|
install_command: 'gem install slim_lint'
|
496
511
|
include: '**/*.slim'
|
497
512
|
|
498
513
|
Sqlint:
|
499
514
|
enabled: false
|
500
|
-
description: '
|
515
|
+
description: 'Analyze with sqlint'
|
501
516
|
required_executable: 'sqlint'
|
502
517
|
install_command: 'gem install sqlint'
|
503
518
|
include: '**/*.sql'
|
504
519
|
|
505
520
|
Standard:
|
506
521
|
enabled: false
|
507
|
-
description: '
|
522
|
+
description: 'Analyze with standard'
|
508
523
|
required_executable: 'standard'
|
509
524
|
flags: ['--verbose']
|
510
525
|
install_command: 'npm install -g standard'
|
@@ -512,13 +527,13 @@ PreCommit:
|
|
512
527
|
|
513
528
|
TrailingWhitespace:
|
514
529
|
enabled: false
|
515
|
-
description: '
|
530
|
+
description: 'Check for trailing whitespace'
|
516
531
|
required_executable: 'grep'
|
517
532
|
flags: ['-IHn', "[ \t]$"]
|
518
533
|
|
519
534
|
TravisLint:
|
520
535
|
enabled: false
|
521
|
-
description: '
|
536
|
+
description: 'Check Travis CI configuration'
|
522
537
|
required_executable: 'travis'
|
523
538
|
flags: ['lint']
|
524
539
|
install_command: 'gem install travis'
|
@@ -526,7 +541,7 @@ PreCommit:
|
|
526
541
|
|
527
542
|
Vint:
|
528
543
|
enabled: false
|
529
|
-
description: '
|
544
|
+
description: 'Analyze with Vint'
|
530
545
|
required_executable: 'vint'
|
531
546
|
install_command: 'pip install vim-vint'
|
532
547
|
include:
|
@@ -535,7 +550,7 @@ PreCommit:
|
|
535
550
|
|
536
551
|
W3cCss:
|
537
552
|
enabled: false
|
538
|
-
description: '
|
553
|
+
description: 'Analyze with W3C CSS validation service'
|
539
554
|
required_library: 'w3c_validators'
|
540
555
|
install_command: 'gem install w3c_validators'
|
541
556
|
validator_uri: 'http://jigsaw.w3.org/css-validator/validator'
|
@@ -547,7 +562,7 @@ PreCommit:
|
|
547
562
|
|
548
563
|
W3cHtml:
|
549
564
|
enabled: false
|
550
|
-
description: '
|
565
|
+
description: 'Analyze with W3C HTML validation service'
|
551
566
|
required_library: 'w3c_validators'
|
552
567
|
install_command: 'gem install w3c_validators'
|
553
568
|
validator_uri: 'http://validator.w3.org/check'
|
@@ -558,7 +573,7 @@ PreCommit:
|
|
558
573
|
|
559
574
|
XmlLint:
|
560
575
|
enabled: false
|
561
|
-
description: '
|
576
|
+
description: 'Analyze with xmllint'
|
562
577
|
required_executable: 'xmllint'
|
563
578
|
flags: ['--noout']
|
564
579
|
include:
|
@@ -567,7 +582,7 @@ PreCommit:
|
|
567
582
|
|
568
583
|
XmlSyntax:
|
569
584
|
enabled: false
|
570
|
-
description: '
|
585
|
+
description: 'Check XML syntax'
|
571
586
|
required_library: 'rexml/document'
|
572
587
|
include:
|
573
588
|
- '**/*.xml'
|
@@ -575,7 +590,7 @@ PreCommit:
|
|
575
590
|
|
576
591
|
YamlSyntax:
|
577
592
|
enabled: false
|
578
|
-
description: '
|
593
|
+
description: 'Check YAML syntax'
|
579
594
|
required_library: 'yaml'
|
580
595
|
include:
|
581
596
|
- '**/*.yaml'
|
@@ -589,7 +604,7 @@ PostCheckout:
|
|
589
604
|
|
590
605
|
BowerInstall:
|
591
606
|
enabled: false
|
592
|
-
description: '
|
607
|
+
description: 'Install bower dependencies'
|
593
608
|
requires_files: true
|
594
609
|
required_executable: 'bower'
|
595
610
|
install_command: 'npm install -g bower'
|
@@ -598,7 +613,7 @@ PostCheckout:
|
|
598
613
|
|
599
614
|
BundleInstall:
|
600
615
|
enabled: false
|
601
|
-
description: '
|
616
|
+
description: 'Install Bundler dependencies'
|
602
617
|
requires_files: true
|
603
618
|
required_executable: 'bundle'
|
604
619
|
install_command: 'gem install bundler'
|
@@ -610,13 +625,13 @@ PostCheckout:
|
|
610
625
|
|
611
626
|
IndexTags:
|
612
627
|
enabled: false
|
613
|
-
description: '
|
628
|
+
description: 'Generate tags file from source'
|
614
629
|
quiet: true
|
615
630
|
required_executable: 'ctags'
|
616
631
|
|
617
632
|
NpmInstall:
|
618
633
|
enabled: false
|
619
|
-
description: '
|
634
|
+
description: 'Install NPM dependencies'
|
620
635
|
requires_files: true
|
621
636
|
required_executable: 'npm'
|
622
637
|
flags: ['install']
|
@@ -626,7 +641,7 @@ PostCheckout:
|
|
626
641
|
|
627
642
|
SubmoduleStatus:
|
628
643
|
enabled: false
|
629
|
-
description: '
|
644
|
+
description: 'Check submodule status'
|
630
645
|
quiet: true
|
631
646
|
recursive: false
|
632
647
|
|
@@ -639,7 +654,7 @@ PostCommit:
|
|
639
654
|
|
640
655
|
BowerInstall:
|
641
656
|
enabled: false
|
642
|
-
description: '
|
657
|
+
description: 'Install bower dependencies'
|
643
658
|
requires_files: true
|
644
659
|
required_executable: 'bower'
|
645
660
|
install_command: 'npm install -g bower'
|
@@ -648,7 +663,7 @@ PostCommit:
|
|
648
663
|
|
649
664
|
BundleInstall:
|
650
665
|
enabled: false
|
651
|
-
description: '
|
666
|
+
description: 'Install Bundler dependencies'
|
652
667
|
requires_files: true
|
653
668
|
required_executable: 'bundle'
|
654
669
|
install_command: 'gem install bundler'
|
@@ -660,7 +675,7 @@ PostCommit:
|
|
660
675
|
|
661
676
|
GitGuilt:
|
662
677
|
enabled: false
|
663
|
-
description: '
|
678
|
+
description: 'Calculate changes in blame since last commit'
|
664
679
|
requires_files: true
|
665
680
|
required_executable: 'git-guilt'
|
666
681
|
flags: ['HEAD~', 'HEAD']
|
@@ -668,13 +683,13 @@ PostCommit:
|
|
668
683
|
|
669
684
|
IndexTags:
|
670
685
|
enabled: false
|
671
|
-
description: '
|
686
|
+
description: 'Generate tags file from source'
|
672
687
|
quiet: true
|
673
688
|
required_executable: 'ctags'
|
674
689
|
|
675
690
|
NpmInstall:
|
676
691
|
enabled: false
|
677
|
-
description: '
|
692
|
+
description: 'Install NPM dependencies'
|
678
693
|
requires_files: true
|
679
694
|
required_executable: 'npm'
|
680
695
|
flags: ['install']
|
@@ -684,7 +699,7 @@ PostCommit:
|
|
684
699
|
|
685
700
|
SubmoduleStatus:
|
686
701
|
enabled: false
|
687
|
-
description: '
|
702
|
+
description: 'Check submodule status'
|
688
703
|
quiet: true
|
689
704
|
recursive: false
|
690
705
|
|
@@ -696,7 +711,7 @@ PostMerge:
|
|
696
711
|
|
697
712
|
BowerInstall:
|
698
713
|
enabled: false
|
699
|
-
description: '
|
714
|
+
description: 'Install bower dependencies'
|
700
715
|
requires_files: true
|
701
716
|
required_executable: 'bower'
|
702
717
|
install_command: 'npm install -g bower'
|
@@ -705,7 +720,7 @@ PostMerge:
|
|
705
720
|
|
706
721
|
BundleInstall:
|
707
722
|
enabled: false
|
708
|
-
description: '
|
723
|
+
description: 'Install Bundler dependencies'
|
709
724
|
requires_files: true
|
710
725
|
required_executable: 'bundle'
|
711
726
|
install_command: 'gem install bundler'
|
@@ -717,13 +732,13 @@ PostMerge:
|
|
717
732
|
|
718
733
|
IndexTags:
|
719
734
|
enabled: false
|
720
|
-
description: '
|
735
|
+
description: 'Generate tags file from source'
|
721
736
|
quiet: true
|
722
737
|
required_executable: 'ctags'
|
723
738
|
|
724
739
|
NpmInstall:
|
725
740
|
enabled: false
|
726
|
-
description: '
|
741
|
+
description: 'Install NPM dependencies'
|
727
742
|
requires_files: true
|
728
743
|
required_executable: 'npm'
|
729
744
|
flags: ['install']
|
@@ -733,7 +748,7 @@ PostMerge:
|
|
733
748
|
|
734
749
|
SubmoduleStatus:
|
735
750
|
enabled: false
|
736
|
-
description: '
|
751
|
+
description: 'Check submodule status'
|
737
752
|
quiet: true
|
738
753
|
recursive: false
|
739
754
|
|
@@ -745,7 +760,7 @@ PostRewrite:
|
|
745
760
|
|
746
761
|
BowerInstall:
|
747
762
|
enabled: false
|
748
|
-
description: '
|
763
|
+
description: 'Install bower dependencies'
|
749
764
|
requires_files: true
|
750
765
|
required_executable: 'bower'
|
751
766
|
install_command: 'npm install -g bower'
|
@@ -754,7 +769,7 @@ PostRewrite:
|
|
754
769
|
|
755
770
|
BundleInstall:
|
756
771
|
enabled: false
|
757
|
-
description: '
|
772
|
+
description: 'Install Bundler dependencies'
|
758
773
|
requires_files: true
|
759
774
|
required_executable: 'bundle'
|
760
775
|
install_command: 'gem install bundler'
|
@@ -766,13 +781,13 @@ PostRewrite:
|
|
766
781
|
|
767
782
|
IndexTags:
|
768
783
|
enabled: false
|
769
|
-
description: '
|
784
|
+
description: 'Generate tags file from source'
|
770
785
|
quiet: true
|
771
786
|
required_executable: 'ctags'
|
772
787
|
|
773
788
|
NpmInstall:
|
774
789
|
enabled: false
|
775
|
-
description: '
|
790
|
+
description: 'Install NPM dependencies'
|
776
791
|
requires_files: true
|
777
792
|
required_executable: 'npm'
|
778
793
|
flags: ['install']
|
@@ -782,7 +797,7 @@ PostRewrite:
|
|
782
797
|
|
783
798
|
SubmoduleStatus:
|
784
799
|
enabled: false
|
785
|
-
description: '
|
800
|
+
description: 'Check submodule status'
|
786
801
|
quiet: true
|
787
802
|
recursive: false
|
788
803
|
|
@@ -796,19 +811,19 @@ PrePush:
|
|
796
811
|
|
797
812
|
ProtectedBranches:
|
798
813
|
enabled: false
|
799
|
-
description: '
|
814
|
+
description: 'Check for illegal pushes to protected branches'
|
800
815
|
branches: ['master']
|
801
816
|
|
802
817
|
RSpec:
|
803
818
|
enabled: false
|
804
|
-
description: '
|
819
|
+
description: 'Run RSpec test suite'
|
805
820
|
required_executable: 'rspec'
|
806
821
|
|
807
822
|
Minitest:
|
808
823
|
enabled: false
|
809
|
-
description: '
|
810
|
-
command: ['ruby', '-Ilib:test', '
|
811
|
-
|
824
|
+
description: 'Run Minitest test suite'
|
825
|
+
command: ['ruby', '-Ilib:test', '-rminitest', "-e 'exit! Minitest.run'"]
|
826
|
+
include: 'test/**/*_test.rb'
|
812
827
|
|
813
828
|
# Hooks that run during `git rebase`, before any commits are rebased.
|
814
829
|
# If a hook fails, the rebase is aborted.
|
@@ -820,5 +835,5 @@ PreRebase:
|
|
820
835
|
|
821
836
|
MergedCommits:
|
822
837
|
enabled: false
|
823
|
-
description: '
|
838
|
+
description: 'Check for commits that have already been merged'
|
824
839
|
branches: ['master']
|
@@ -42,6 +42,9 @@ module Overcommit::Exceptions
|
|
42
42
|
# Raised when one or more hook plugin signatures have changed.
|
43
43
|
class InvalidHookSignature < StandardError; end
|
44
44
|
|
45
|
+
# Raised when there is a problem processing output into {Hook::Messages}s.
|
46
|
+
class MessageProcessingError < StandardError; end
|
47
|
+
|
45
48
|
# Raised when an installation target already contains non-Overcommit hooks.
|
46
49
|
class PreExistingHooks < StandardError; end
|
47
50
|
end
|
data/lib/overcommit/git_repo.rb
CHANGED
@@ -266,5 +266,11 @@ module Overcommit
|
|
266
266
|
split(/\s+/).
|
267
267
|
reject { |s| s.empty? || s == '*' }
|
268
268
|
end
|
269
|
+
|
270
|
+
# Returns the name of the currently checked out branch.
|
271
|
+
# @return [String]
|
272
|
+
def current_branch
|
273
|
+
`git symbolic-ref --short -q HEAD`.chomp
|
274
|
+
end
|
269
275
|
end
|
270
276
|
end
|
data/lib/overcommit/hook/base.rb
CHANGED
@@ -17,7 +17,7 @@ module Overcommit::Hook
|
|
17
17
|
class Base # rubocop:disable Metrics/ClassLength
|
18
18
|
extend Forwardable
|
19
19
|
|
20
|
-
def_delegators :@context, :modified_files
|
20
|
+
def_delegators :@context, :all_files, :modified_files
|
21
21
|
attr_reader :config
|
22
22
|
|
23
23
|
# @param config [Overcommit::Configuration]
|
@@ -54,7 +54,7 @@ module Overcommit::Hook
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def description
|
57
|
-
@config['description'] || "
|
57
|
+
@config['description'] || "Run #{name}"
|
58
58
|
end
|
59
59
|
|
60
60
|
def required?
|
@@ -155,11 +155,21 @@ module Overcommit::Hook
|
|
155
155
|
# Gets a list of staged files that apply to this hook based on its
|
156
156
|
# configured `include` and `exclude` lists.
|
157
157
|
def applicable_files
|
158
|
-
@applicable_files ||= modified_files
|
158
|
+
@applicable_files ||= select_applicable(modified_files)
|
159
|
+
end
|
160
|
+
|
161
|
+
# Gets a list of all files that apply to this hook based on its
|
162
|
+
# configured `include` and `exclude` lists.
|
163
|
+
def included_files
|
164
|
+
@included_files ||= select_applicable(all_files)
|
159
165
|
end
|
160
166
|
|
161
167
|
private
|
162
168
|
|
169
|
+
def select_applicable(list)
|
170
|
+
list.select { |file| applicable_file?(file) }.sort
|
171
|
+
end
|
172
|
+
|
163
173
|
def applicable_file?(file)
|
164
174
|
includes = Array(@config['include']).flatten.map do |glob|
|
165
175
|
Overcommit::Utils.convert_glob_to_absolute(glob)
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Overcommit::Hook::CommitMsg
|
2
|
+
# Ensures the commit message follows a specific format.
|
3
|
+
class MessageFormat < Base
|
4
|
+
def run
|
5
|
+
error_msg = validate_pattern(commit_message_lines.join("\n"))
|
6
|
+
return :fail, error_msg if error_msg
|
7
|
+
|
8
|
+
:pass
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def validate_pattern(message)
|
14
|
+
pattern = config['pattern']
|
15
|
+
return if pattern.empty?
|
16
|
+
|
17
|
+
expected_pattern_message = config['expected_pattern_message']
|
18
|
+
sample_message = config['sample_message']
|
19
|
+
|
20
|
+
[
|
21
|
+
'Commit message pattern mismatch.',
|
22
|
+
"Expected : #{expected_pattern_message}",
|
23
|
+
"Sample : #{sample_message}"
|
24
|
+
].join("\n") unless message =~ /#{pattern}/
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -22,13 +22,16 @@ module Overcommit::Hook::PreCommit
|
|
22
22
|
# @param type_categorizer [Proc] function executed against the `type`
|
23
23
|
# capture group to convert it to a `:warning` or `:error` symbol. Assumes
|
24
24
|
# `:error` if `nil`.
|
25
|
-
# @raise [
|
25
|
+
# @raise [Overcommit::Exceptions::MessageProcessingError] line of output did
|
26
|
+
# not match regex
|
26
27
|
# @return [Array<Message>]
|
27
28
|
def extract_messages(output_messages, regex, type_categorizer = nil)
|
28
|
-
output_messages.map do |message|
|
29
|
+
output_messages.map.with_index do |message, index|
|
29
30
|
unless match = message.match(regex)
|
30
|
-
raise
|
31
|
-
|
31
|
+
raise Overcommit::Exceptions::MessageProcessingError,
|
32
|
+
'Unexpected output: unable to determine line number or type ' \
|
33
|
+
"of error/warning for output:\n" \
|
34
|
+
"#{output_messages[index..-1].join("\n")}"
|
32
35
|
end
|
33
36
|
|
34
37
|
file = extract_file(match, message)
|
@@ -43,7 +46,8 @@ module Overcommit::Hook::PreCommit
|
|
43
46
|
return unless match.names.include?('file')
|
44
47
|
|
45
48
|
if match[:file].to_s.empty?
|
46
|
-
raise
|
49
|
+
raise Overcommit::Exceptions::MessageProcessingError,
|
50
|
+
"Unexpected output: no file found in '#{message}'"
|
47
51
|
end
|
48
52
|
|
49
53
|
match[:file]
|
@@ -53,7 +57,8 @@ module Overcommit::Hook::PreCommit
|
|
53
57
|
return unless match.names.include?('line')
|
54
58
|
Integer(match[:line])
|
55
59
|
rescue ArgumentError, TypeError
|
56
|
-
raise
|
60
|
+
raise Overcommit::Exceptions::MessageProcessingError,
|
61
|
+
"Unexpected output: invalid line number found in '#{message}'"
|
57
62
|
end
|
58
63
|
|
59
64
|
def extract_type(match, message, type_categorizer)
|
@@ -61,7 +66,8 @@ module Overcommit::Hook::PreCommit
|
|
61
66
|
type_match = match.names.include?('type') ? match[:type] : nil
|
62
67
|
type = type_categorizer.call(type_match)
|
63
68
|
unless Overcommit::Hook::MESSAGE_TYPES.include?(type)
|
64
|
-
raise
|
69
|
+
raise Overcommit::Exceptions::MessageProcessingError,
|
70
|
+
"Invalid message type '#{type}' for '#{message}': must " \
|
65
71
|
"be one of #{Overcommit::Hook::MESSAGE_TYPES.inspect}"
|
66
72
|
end
|
67
73
|
type
|
@@ -1,6 +1,16 @@
|
|
1
1
|
module Overcommit::Hook::PreCommit
|
2
2
|
# Runs `eslint` against any modified JavaScript files.
|
3
3
|
#
|
4
|
+
# Protip: if you have an npm script set up to run eslint, you can configure
|
5
|
+
# this hook to run eslint via your npm script by using the `command` option in
|
6
|
+
# your .overcommit.yml file. This can be useful if you have some eslint
|
7
|
+
# configuration built into your npm script that you don't want to repeat
|
8
|
+
# somewhere else. Example:
|
9
|
+
#
|
10
|
+
# EsLint:
|
11
|
+
# enabled: true
|
12
|
+
# command: ['npm', 'run', 'lint']
|
13
|
+
#
|
4
14
|
# @see http://eslint.org/
|
5
15
|
class EsLint < Base
|
6
16
|
def run
|
@@ -2,6 +2,16 @@ module Overcommit::Hook::PreCommit
|
|
2
2
|
# Checks for files with execute permissions, which are usually not necessary
|
3
3
|
# in source code files (and are typically caused by a misconfigured editor
|
4
4
|
# assigning incorrect default permissions).
|
5
|
+
#
|
6
|
+
# Protip: if you have some files that you want to allow execute permissions
|
7
|
+
# on, you can disable this hook for those files by using the `exclude` option
|
8
|
+
# on your .overcommit.yml file. Example:
|
9
|
+
#
|
10
|
+
# ExecutePermissions:
|
11
|
+
# enabled: true
|
12
|
+
# exclude:
|
13
|
+
# - 'path/to/my/file/that/should/have/execute/permissions.sh'
|
14
|
+
# - 'directory/that/should/have/execute/permissions/**/*'
|
5
15
|
class ExecutePermissions < Base
|
6
16
|
def run
|
7
17
|
file_modes = {}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Overcommit::Hook::PreCommit
|
2
|
+
# Prevents commits to branches matching one of the configured patterns.
|
3
|
+
class ForbiddenBranches < Base
|
4
|
+
def run
|
5
|
+
return :pass unless forbidden_commit?
|
6
|
+
|
7
|
+
[:fail, "Committing to #{current_branch} is forbidden"]
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def forbidden_commit?
|
13
|
+
forbidden_branch_patterns.any? { |p| File.fnmatch(p, current_branch) }
|
14
|
+
end
|
15
|
+
|
16
|
+
def forbidden_branch_patterns
|
17
|
+
@forbidden_branch_patterns ||= Array(config['branch_patterns'])
|
18
|
+
end
|
19
|
+
|
20
|
+
def current_branch
|
21
|
+
@current_branch ||= Overcommit::GitRepo.current_branch
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -3,10 +3,6 @@ module Overcommit::Hook::PreCommit
|
|
3
3
|
#
|
4
4
|
# @see https://github.com/brigade/scss-lint
|
5
5
|
class ScssLint < Base
|
6
|
-
MESSAGE_TYPE_CATEGORIZER = lambda do |type|
|
7
|
-
type.include?('W') ? :warning : :error
|
8
|
-
end
|
9
|
-
|
10
6
|
def run
|
11
7
|
result = execute(command, args: applicable_files)
|
12
8
|
|
@@ -16,13 +12,30 @@ module Overcommit::Hook::PreCommit
|
|
16
12
|
return :pass if [0, 81].include?(result.status)
|
17
13
|
|
18
14
|
# Any status that isn't indicating lint warnings or errors indicates failure
|
19
|
-
return :fail, result.stdout unless [1, 2].include?(result.status)
|
15
|
+
return :fail, (result.stdout + result.stderr) unless [1, 2].include?(result.status)
|
16
|
+
|
17
|
+
begin
|
18
|
+
collect_lint_messages(JSON.parse(result.stdout))
|
19
|
+
rescue JSON::ParserError => ex
|
20
|
+
return :fail, "Unable to parse JSON returned by SCSS-Lint: #{ex.message}\n" \
|
21
|
+
"STDOUT: #{result.stdout}\nSTDERR: #{result.stderr}"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def collect_lint_messages(files_to_lints)
|
28
|
+
files_to_lints.flat_map do |path, lints|
|
29
|
+
lints.map do |lint|
|
30
|
+
severity = lint['severity'] == 'warning' ? :warning : :error
|
31
|
+
|
32
|
+
message = lint['reason']
|
33
|
+
message = "#{lint['linter']}: #{message}" if lint['linter']
|
34
|
+
message = "#{path}:#{lint['line']} #{message}"
|
20
35
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
MESSAGE_TYPE_CATEGORIZER,
|
25
|
-
)
|
36
|
+
Overcommit::Hook::Message.new(severity, path, lint['line'], message)
|
37
|
+
end
|
38
|
+
end
|
26
39
|
end
|
27
40
|
end
|
28
41
|
end
|
@@ -79,6 +79,13 @@ module Overcommit::HookContext
|
|
79
79
|
[]
|
80
80
|
end
|
81
81
|
|
82
|
+
# Returns the full list of files tracked by git
|
83
|
+
#
|
84
|
+
# @return [Array<String>]
|
85
|
+
def all_files
|
86
|
+
Overcommit::GitRepo.all_files
|
87
|
+
end
|
88
|
+
|
82
89
|
# Returns the contents of the entire standard input stream that were passed
|
83
90
|
# to the hook.
|
84
91
|
#
|
@@ -15,6 +15,13 @@ module Overcommit::HookContext
|
|
15
15
|
cmd = Overcommit::Utils.parent_command
|
16
16
|
amend_pattern = 'commit(\s.*)?\s--amend(\s|$)'
|
17
17
|
|
18
|
+
# Since the ps command can return invalid byte sequences for commands
|
19
|
+
# containing unicode characters, we replace the offending characters,
|
20
|
+
# since the pattern we're looking for will consist of ASCII characters
|
21
|
+
unless cmd.valid_encoding?
|
22
|
+
cmd.encode!('UTF-16be', invalid: :replace, replace: '?').encode!('UTF-8')
|
23
|
+
end
|
24
|
+
|
18
25
|
return @amendment if
|
19
26
|
# True if the command is a commit with the --amend flag
|
20
27
|
@amendment = !(/\s#{amend_pattern}/ =~ cmd).nil?
|
@@ -7,7 +7,7 @@ module Overcommit::HookContext
|
|
7
7
|
# which is useful for automated CI scripts.
|
8
8
|
class RunAll < Base
|
9
9
|
def modified_files
|
10
|
-
@modified_files ||=
|
10
|
+
@modified_files ||= all_files
|
11
11
|
end
|
12
12
|
|
13
13
|
# Returns all lines in the file since in this context the entire repo is
|
@@ -150,6 +150,9 @@ module Overcommit
|
|
150
150
|
return if should_skip?(hook)
|
151
151
|
|
152
152
|
status, output = hook.run_and_transform
|
153
|
+
rescue Overcommit::Exceptions::MessageProcessingError => ex
|
154
|
+
status = :fail
|
155
|
+
output = ex.message
|
153
156
|
rescue => ex
|
154
157
|
status = :fail
|
155
158
|
output = "Hook raised unexpected error\n#{ex.message}\n#{ex.backtrace.join("\n")}"
|
data/lib/overcommit/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: overcommit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.32.0
|
4
|
+
version: 0.32.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brigade Engineering
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-02-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: childprocess
|
@@ -110,6 +110,7 @@ files:
|
|
110
110
|
- lib/overcommit/hook/commit_msg/empty_message.rb
|
111
111
|
- lib/overcommit/hook/commit_msg/gerrit_change_id.rb
|
112
112
|
- lib/overcommit/hook/commit_msg/hard_tabs.rb
|
113
|
+
- lib/overcommit/hook/commit_msg/message_format.rb
|
113
114
|
- lib/overcommit/hook/commit_msg/russian_novel.rb
|
114
115
|
- lib/overcommit/hook/commit_msg/single_line_subject.rb
|
115
116
|
- lib/overcommit/hook/commit_msg/spell_check.rb
|
@@ -154,6 +155,7 @@ files:
|
|
154
155
|
- lib/overcommit/hook/pre_commit/dogma.rb
|
155
156
|
- lib/overcommit/hook/pre_commit/es_lint.rb
|
156
157
|
- lib/overcommit/hook/pre_commit/execute_permissions.rb
|
158
|
+
- lib/overcommit/hook/pre_commit/forbidden_branches.rb
|
157
159
|
- lib/overcommit/hook/pre_commit/go_lint.rb
|
158
160
|
- lib/overcommit/hook/pre_commit/go_vet.rb
|
159
161
|
- lib/overcommit/hook/pre_commit/haml_lint.rb
|
@@ -263,9 +265,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
263
265
|
version: 1.9.3
|
264
266
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
265
267
|
requirements:
|
266
|
-
- - "
|
268
|
+
- - ">="
|
267
269
|
- !ruby/object:Gem::Version
|
268
|
-
version:
|
270
|
+
version: '0'
|
269
271
|
requirements: []
|
270
272
|
rubyforge_project:
|
271
273
|
rubygems_version: 2.4.5.1
|