overcommit 0.67.0 → 0.68.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/config/default.yml +18 -0
- data/lib/overcommit/hook/pre_commit/scalastyle.rb +1 -1
- data/lib/overcommit/hook/pre_commit/solargraph.rb +48 -0
- data/lib/overcommit/hook_context/diff.rb +2 -0
- data/lib/overcommit/version.rb +1 -1
- data/template-dir/hooks/commit-msg +0 -1
- data/template-dir/hooks/overcommit-hook +0 -1
- data/template-dir/hooks/post-checkout +0 -1
- data/template-dir/hooks/post-commit +0 -1
- data/template-dir/hooks/post-merge +0 -1
- data/template-dir/hooks/post-rewrite +0 -1
- data/template-dir/hooks/pre-commit +0 -1
- data/template-dir/hooks/pre-push +0 -1
- data/template-dir/hooks/pre-rebase +0 -1
- data/template-dir/hooks/prepare-commit-msg +0 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 57b026be0de6f8992a7959d366a7c131025b1de64e442d5fdbf3e73481501645
|
4
|
+
data.tar.gz: 17e3e01c75287dcfac05d6e8b8114db2aa772cd407efed388bd68674714ff46c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a0f34b82082e8b20eb23c7cb77066d2a2f6135d38b8a700c247f014100c2bd6f4ab6f0e0ff14517e219891eafa54a4d0bf4796604971d91d5125e2435d17e11
|
7
|
+
data.tar.gz: a7f96cef415b1722d62f4cede3af1808005c16f892095ea1ff7f420eef00bd448dad778fc699c5e4360dab1f21847cd892375187c2a6ad8ef1d14944573a5d1a
|
data/config/default.yml
CHANGED
@@ -32,6 +32,10 @@
|
|
32
32
|
# your repository, and then set the `gemfile` option below to the name you gave
|
33
33
|
# the file.
|
34
34
|
# (Generate lock file by running `bundle install --gemfile=.overcommit_gems.rb`)
|
35
|
+
#
|
36
|
+
# NOTE: the following line will be parsed by a regexp rather than a proper YAML
|
37
|
+
# parser, so avoid any values other than false or a string, and don't use inline
|
38
|
+
# comments
|
35
39
|
gemfile: false
|
36
40
|
|
37
41
|
# Where to store hook plugins specific to a repository. These are loaded in
|
@@ -795,6 +799,20 @@ PreCommit:
|
|
795
799
|
install_command: 'gem install slim_lint'
|
796
800
|
include: '**/*.slim'
|
797
801
|
|
802
|
+
Solargraph:
|
803
|
+
enabled: false
|
804
|
+
description: 'Typecheck with Solargraph'
|
805
|
+
requires_files: true
|
806
|
+
required_executable: 'solargraph'
|
807
|
+
install_command: 'gem install solargraph'
|
808
|
+
flags: ['typecheck', '--level', 'strong']
|
809
|
+
include: '**/*.rb'
|
810
|
+
exclude:
|
811
|
+
- 'spec/**/*.rb'
|
812
|
+
- 'test/**/*.rb'
|
813
|
+
- 'vendor/**/*.rb'
|
814
|
+
- '.bundle/**/*.rb'
|
815
|
+
|
798
816
|
Sorbet:
|
799
817
|
enabled: false
|
800
818
|
description: 'Analyze with Sorbet'
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'overcommit'
|
4
|
+
require 'overcommit/hook/pre_commit/base'
|
5
|
+
|
6
|
+
module Overcommit
|
7
|
+
module Hook
|
8
|
+
module PreCommit
|
9
|
+
# Runs `solargraph typecheck` against any modified Ruby files.
|
10
|
+
#
|
11
|
+
# @see https://github.com/castwide/solargraph
|
12
|
+
class Solargraph < Base
|
13
|
+
MESSAGE_REGEX = /^\s*(?<file>(?:\w:)?[^:]+):(?<line>\d+) - /.freeze
|
14
|
+
|
15
|
+
def run
|
16
|
+
result = execute(command, args: applicable_files)
|
17
|
+
return :pass if result.success?
|
18
|
+
|
19
|
+
stderr_lines = remove_harmless_glitches(result.stderr)
|
20
|
+
violation_lines = result.stdout.split("\n").grep(MESSAGE_REGEX)
|
21
|
+
if violation_lines.empty?
|
22
|
+
if stderr_lines.empty?
|
23
|
+
[:fail, 'Solargraph failed to run']
|
24
|
+
else
|
25
|
+
# let's feed it stderr so users see the errors
|
26
|
+
extract_messages(stderr_lines, MESSAGE_REGEX)
|
27
|
+
end
|
28
|
+
else
|
29
|
+
extract_messages(violation_lines, MESSAGE_REGEX)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
# @param stderr [String]
|
36
|
+
#
|
37
|
+
# @return [Array<String>]
|
38
|
+
def remove_harmless_glitches(stderr)
|
39
|
+
stderr.split("\n").reject do |line|
|
40
|
+
line.include?('[WARN]') ||
|
41
|
+
line.include?('warning: parser/current is loading') ||
|
42
|
+
line.include?('Please see https://github.com/whitequark')
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
data/lib/overcommit/version.rb
CHANGED
data/template-dir/hooks/pre-push
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: overcommit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.68.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shane da Silva
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-06-30 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: childprocess
|
@@ -209,6 +209,7 @@ files:
|
|
209
209
|
- lib/overcommit/hook/pre_commit/semi_standard.rb
|
210
210
|
- lib/overcommit/hook/pre_commit/shell_check.rb
|
211
211
|
- lib/overcommit/hook/pre_commit/slim_lint.rb
|
212
|
+
- lib/overcommit/hook/pre_commit/solargraph.rb
|
212
213
|
- lib/overcommit/hook/pre_commit/sorbet.rb
|
213
214
|
- lib/overcommit/hook/pre_commit/sqlint.rb
|
214
215
|
- lib/overcommit/hook/pre_commit/standard.rb
|