git-lint 1.4.0 → 2.3.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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/README.adoc +37 -139
- data/lib/git/lint.rb +18 -50
- data/lib/git/lint/analyzers/abstract.rb +12 -30
- data/lib/git/lint/analyzers/commit_author_capitalization.rb +1 -3
- data/lib/git/lint/analyzers/commit_author_email.rb +1 -3
- data/lib/git/lint/analyzers/commit_author_name.rb +2 -4
- data/lib/git/lint/analyzers/commit_body_bullet.rb +2 -6
- data/lib/git/lint/analyzers/commit_body_bullet_capitalization.rb +3 -9
- data/lib/git/lint/analyzers/commit_body_bullet_delimiter.rb +4 -12
- data/lib/git/lint/analyzers/commit_body_issue_tracker_link.rb +3 -9
- data/lib/git/lint/analyzers/commit_body_leading_line.rb +3 -3
- data/lib/git/lint/analyzers/commit_body_line_length.rb +3 -9
- data/lib/git/lint/analyzers/commit_body_paragraph_capitalization.rb +3 -9
- data/lib/git/lint/analyzers/commit_body_phrase.rb +2 -6
- data/lib/git/lint/analyzers/commit_body_presence.rb +2 -4
- data/lib/git/lint/analyzers/commit_body_single_bullet.rb +3 -9
- data/lib/git/lint/analyzers/commit_subject_length.rb +2 -6
- data/lib/git/lint/analyzers/commit_subject_prefix.rb +2 -10
- data/lib/git/lint/analyzers/commit_subject_suffix.rb +1 -3
- data/lib/git/lint/analyzers/commit_trailer_collaborator_capitalization.rb +2 -4
- data/lib/git/lint/analyzers/commit_trailer_collaborator_duplication.rb +3 -5
- data/lib/git/lint/analyzers/commit_trailer_collaborator_email.rb +2 -4
- data/lib/git/lint/analyzers/commit_trailer_collaborator_key.rb +3 -7
- data/lib/git/lint/analyzers/commit_trailer_collaborator_name.rb +3 -7
- data/lib/git/lint/branches/environments/circle_ci.rb +5 -9
- data/lib/git/lint/branches/environments/git_hub_action.rb +5 -9
- data/lib/git/lint/branches/environments/local.rb +5 -9
- data/lib/git/lint/branches/environments/netlify_ci.rb +9 -11
- data/lib/git/lint/branches/environments/travis_ci.rb +14 -22
- data/lib/git/lint/branches/feature.rb +6 -9
- data/lib/git/lint/cli.rb +10 -15
- data/lib/git/lint/collector.rb +12 -32
- data/lib/git/lint/identity.rb +1 -1
- data/lib/git/lint/kit/filter_list.rb +3 -9
- data/lib/git/lint/parsers/trailers/collaborator.rb +6 -14
- data/lib/git/lint/rake/tasks.rb +1 -3
- data/lib/git/lint/refinements/strings.rb +2 -6
- data/lib/git/lint/reporters/branch.rb +15 -15
- data/lib/git/lint/reporters/commit.rb +1 -3
- data/lib/git/lint/reporters/line.rb +1 -3
- data/lib/git/lint/reporters/lines/paragraph.rb +5 -15
- data/lib/git/lint/reporters/lines/sentence.rb +3 -9
- data/lib/git/lint/reporters/style.rb +1 -3
- data/lib/git/lint/runner.rb +5 -4
- data/lib/git/lint/validators/capitalization.rb +3 -7
- data/lib/git/lint/validators/email.rb +1 -3
- data/lib/git/lint/validators/name.rb +3 -7
- metadata +46 -21
- metadata.gz.sig +0 -0
- data/lib/git/kit/repo.rb +0 -30
- data/lib/git/lint/commits/saved.rb +0 -104
- data/lib/git/lint/commits/unsaved.rb +0 -120
@@ -17,9 +17,7 @@ module Git
|
|
17
17
|
@validator = validator
|
18
18
|
end
|
19
19
|
|
20
|
-
def valid?
|
21
|
-
validator.new(commit.author_name, minimum: minimum).valid?
|
22
|
-
end
|
20
|
+
def valid? = validator.new(commit.author_name, minimum: minimum).valid?
|
23
21
|
|
24
22
|
def issue
|
25
23
|
return {} if valid?
|
@@ -32,7 +30,7 @@ module Git
|
|
32
30
|
attr_reader :validator
|
33
31
|
|
34
32
|
def minimum
|
35
|
-
settings.fetch
|
33
|
+
settings.fetch __method__
|
36
34
|
end
|
37
35
|
end
|
38
36
|
end
|
@@ -12,9 +12,7 @@ module Git
|
|
12
12
|
}
|
13
13
|
end
|
14
14
|
|
15
|
-
def valid?
|
16
|
-
commit.body_lines.all? { |line| !invalid_line? line }
|
17
|
-
end
|
15
|
+
def valid? = commit.body_lines.all? { |line| !invalid_line? line }
|
18
16
|
|
19
17
|
def issue
|
20
18
|
return {} if valid?
|
@@ -27,9 +25,7 @@ module Git
|
|
27
25
|
|
28
26
|
protected
|
29
27
|
|
30
|
-
def load_filter_list
|
31
|
-
Kit::FilterList.new settings.fetch :excludes
|
32
|
-
end
|
28
|
+
def load_filter_list = Kit::FilterList.new(settings.fetch(:excludes))
|
33
29
|
|
34
30
|
# :reek:FeatureEnvy
|
35
31
|
def invalid_line? line
|
@@ -12,9 +12,7 @@ module Git
|
|
12
12
|
}
|
13
13
|
end
|
14
14
|
|
15
|
-
def valid?
|
16
|
-
lowercased_bullets.size.zero?
|
17
|
-
end
|
15
|
+
def valid? = lowercased_bullets.size.zero?
|
18
16
|
|
19
17
|
def issue
|
20
18
|
return {} if valid?
|
@@ -27,9 +25,7 @@ module Git
|
|
27
25
|
|
28
26
|
protected
|
29
27
|
|
30
|
-
def load_filter_list
|
31
|
-
Kit::FilterList.new settings.fetch :includes
|
32
|
-
end
|
28
|
+
def load_filter_list = Kit::FilterList.new(settings.fetch(:includes))
|
33
29
|
|
34
30
|
def invalid_line? line
|
35
31
|
line.match?(/\A\s*#{Regexp.union filter_list.to_regexp}\s[[:lower:]]+/)
|
@@ -37,9 +33,7 @@ module Git
|
|
37
33
|
|
38
34
|
private
|
39
35
|
|
40
|
-
def lowercased_bullets
|
41
|
-
commit.body_lines.select { |line| invalid_line? line }
|
42
|
-
end
|
36
|
+
def lowercased_bullets = commit.body_lines.select { |line| invalid_line? line }
|
43
37
|
end
|
44
38
|
end
|
45
39
|
end
|
@@ -12,9 +12,7 @@ module Git
|
|
12
12
|
}
|
13
13
|
end
|
14
14
|
|
15
|
-
def valid?
|
16
|
-
commit.body_lines.none? { |line| invalid_line? line }
|
17
|
-
end
|
15
|
+
def valid? = commit.body_lines.none? { |line| invalid_line? line }
|
18
16
|
|
19
17
|
def issue
|
20
18
|
return {} if valid?
|
@@ -27,17 +25,11 @@ module Git
|
|
27
25
|
|
28
26
|
protected
|
29
27
|
|
30
|
-
def load_filter_list
|
31
|
-
Kit::FilterList.new settings.fetch :includes
|
32
|
-
end
|
28
|
+
def load_filter_list = Kit::FilterList.new(settings.fetch(:includes))
|
33
29
|
|
34
|
-
def invalid_line? line
|
35
|
-
line.match?(/\A\s*#{pattern}(?!(#{pattern}|\s)).+\Z/)
|
36
|
-
end
|
30
|
+
def invalid_line?(line) = line.match?(/\A\s*#{pattern}(?!(#{pattern}|\s)).+\Z/)
|
37
31
|
|
38
|
-
def pattern
|
39
|
-
Regexp.union filter_list.to_regexp
|
40
|
-
end
|
32
|
+
def pattern = Regexp.union(filter_list.to_regexp)
|
41
33
|
end
|
42
34
|
end
|
43
35
|
end
|
@@ -17,9 +17,7 @@ module Git
|
|
17
17
|
}
|
18
18
|
end
|
19
19
|
|
20
|
-
def valid?
|
21
|
-
commit.body_lines.none? { |line| invalid_line? line }
|
22
|
-
end
|
20
|
+
def valid? = commit.body_lines.none? { |line| invalid_line? line }
|
23
21
|
|
24
22
|
def issue
|
25
23
|
return {} if valid?
|
@@ -32,13 +30,9 @@ module Git
|
|
32
30
|
|
33
31
|
protected
|
34
32
|
|
35
|
-
def load_filter_list
|
36
|
-
Kit::FilterList.new settings.fetch :excludes
|
37
|
-
end
|
33
|
+
def load_filter_list = Kit::FilterList.new(settings.fetch(:excludes))
|
38
34
|
|
39
|
-
def invalid_line? line
|
40
|
-
line.match?(/.*#{Regexp.union filter_list.to_regexp}.*/)
|
41
|
-
end
|
35
|
+
def invalid_line?(line) = line.match?(/.*#{Regexp.union filter_list.to_regexp}.*/)
|
42
36
|
end
|
43
37
|
end
|
44
38
|
end
|
@@ -12,12 +12,12 @@ module Git
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def valid?
|
15
|
-
|
16
|
-
subject, body =
|
15
|
+
message = commit.message
|
16
|
+
subject, body = message.split "\n", 2
|
17
17
|
|
18
18
|
return true if !String(subject).empty? && String(body).strip.empty?
|
19
19
|
|
20
|
-
|
20
|
+
message.match?(/\A.+(\n\n|\#).+/m)
|
21
21
|
end
|
22
22
|
|
23
23
|
def issue
|
@@ -12,9 +12,7 @@ module Git
|
|
12
12
|
}
|
13
13
|
end
|
14
14
|
|
15
|
-
def valid?
|
16
|
-
commit.body_lines.all? { |line| !invalid_line? line }
|
17
|
-
end
|
15
|
+
def valid? = commit.body_lines.all? { |line| !invalid_line? line }
|
18
16
|
|
19
17
|
def issue
|
20
18
|
return {} if valid?
|
@@ -27,15 +25,11 @@ module Git
|
|
27
25
|
|
28
26
|
protected
|
29
27
|
|
30
|
-
def invalid_line? line
|
31
|
-
line.length > length
|
32
|
-
end
|
28
|
+
def invalid_line?(line) = line.length > length
|
33
29
|
|
34
30
|
private
|
35
31
|
|
36
|
-
def length
|
37
|
-
settings.fetch :length
|
38
|
-
end
|
32
|
+
def length = settings.fetch(:length)
|
39
33
|
end
|
40
34
|
end
|
41
35
|
end
|
@@ -11,13 +11,9 @@ module Git
|
|
11
11
|
}
|
12
12
|
end
|
13
13
|
|
14
|
-
def self.invalid? line
|
15
|
-
line.match?(/\A[[:lower:]].+\Z/m)
|
16
|
-
end
|
14
|
+
def self.invalid?(line) = line.match?(/\A[[:lower:]].+\Z/m)
|
17
15
|
|
18
|
-
def valid?
|
19
|
-
lowercased_lines.empty?
|
20
|
-
end
|
16
|
+
def valid? = lowercased_lines.empty?
|
21
17
|
|
22
18
|
def issue
|
23
19
|
return {} if valid?
|
@@ -30,9 +26,7 @@ module Git
|
|
30
26
|
|
31
27
|
private
|
32
28
|
|
33
|
-
def lowercased_lines
|
34
|
-
commit.body_paragraphs.select { |line| self.class.invalid? line }
|
35
|
-
end
|
29
|
+
def lowercased_lines = commit.body_paragraphs.select { |line| self.class.invalid? line }
|
36
30
|
|
37
31
|
def affected_lines
|
38
32
|
klass = self.class
|
@@ -41,9 +41,7 @@ module Git
|
|
41
41
|
end
|
42
42
|
# rubocop:enable Metrics/MethodLength
|
43
43
|
|
44
|
-
def valid?
|
45
|
-
commit.body_lines.all? { |line| !invalid_line? line }
|
46
|
-
end
|
44
|
+
def valid? = commit.body_lines.all? { |line| !invalid_line? line }
|
47
45
|
|
48
46
|
def issue
|
49
47
|
return {} if valid?
|
@@ -56,9 +54,7 @@ module Git
|
|
56
54
|
|
57
55
|
protected
|
58
56
|
|
59
|
-
def load_filter_list
|
60
|
-
Kit::FilterList.new settings.fetch(:excludes)
|
61
|
-
end
|
57
|
+
def load_filter_list = Kit::FilterList.new(settings.fetch(:excludes))
|
62
58
|
|
63
59
|
def invalid_line? line
|
64
60
|
line.downcase.match? Regexp.new(
|
@@ -4,7 +4,7 @@ module Git
|
|
4
4
|
module Lint
|
5
5
|
module Analyzers
|
6
6
|
class CommitBodyPresence < Abstract
|
7
|
-
using Refinements::Strings
|
7
|
+
using GitPlus::Refinements::Strings
|
8
8
|
|
9
9
|
def self.defaults
|
10
10
|
{
|
@@ -21,9 +21,7 @@ module Git
|
|
21
21
|
valid_lines.size >= minimum
|
22
22
|
end
|
23
23
|
|
24
|
-
def minimum
|
25
|
-
settings.fetch :minimum
|
26
|
-
end
|
24
|
+
def minimum = settings.fetch(:minimum)
|
27
25
|
|
28
26
|
def issue
|
29
27
|
return {} if valid?
|
@@ -12,9 +12,7 @@ module Git
|
|
12
12
|
}
|
13
13
|
end
|
14
14
|
|
15
|
-
def valid?
|
16
|
-
affected_commit_body_lines.size != 1
|
17
|
-
end
|
15
|
+
def valid? = affected_commit_body_lines.size != 1
|
18
16
|
|
19
17
|
def issue
|
20
18
|
return {} if valid?
|
@@ -27,13 +25,9 @@ module Git
|
|
27
25
|
|
28
26
|
protected
|
29
27
|
|
30
|
-
def load_filter_list
|
31
|
-
Kit::FilterList.new settings.fetch :includes
|
32
|
-
end
|
28
|
+
def load_filter_list = Kit::FilterList.new(settings.fetch(:includes))
|
33
29
|
|
34
|
-
def invalid_line? line
|
35
|
-
line.match?(/\A#{Regexp.union filter_list.to_regexp}\s+/)
|
36
|
-
end
|
30
|
+
def invalid_line?(line) = line.match?(/\A#{Regexp.union filter_list.to_regexp}\s+/)
|
37
31
|
end
|
38
32
|
end
|
39
33
|
end
|
@@ -12,9 +12,7 @@ module Git
|
|
12
12
|
}
|
13
13
|
end
|
14
14
|
|
15
|
-
def valid?
|
16
|
-
commit.subject.sub(/(fixup!|squash!)\s{1}/, "").size <= length
|
17
|
-
end
|
15
|
+
def valid? = commit.subject.sub(/(fixup!|squash!)\s{1}/, "").size <= length
|
18
16
|
|
19
17
|
def issue
|
20
18
|
return {} if valid?
|
@@ -24,9 +22,7 @@ module Git
|
|
24
22
|
|
25
23
|
private
|
26
24
|
|
27
|
-
def length
|
28
|
-
settings.fetch :length
|
29
|
-
end
|
25
|
+
def length = settings.fetch(:length)
|
30
26
|
end
|
31
27
|
end
|
32
28
|
end
|
@@ -13,7 +13,7 @@ module Git
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def valid?
|
16
|
-
return true if
|
16
|
+
return true if commit.prefix?
|
17
17
|
return true if filter_list.empty?
|
18
18
|
|
19
19
|
commit.subject.match?(/\A#{Regexp.union filter_list.to_regexp}/)
|
@@ -27,15 +27,7 @@ module Git
|
|
27
27
|
|
28
28
|
protected
|
29
29
|
|
30
|
-
def load_filter_list
|
31
|
-
Kit::FilterList.new settings.fetch(:includes)
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def fixup_or_squash?
|
37
|
-
commit.is_a?(Git::Lint::Commits::Unsaved) && (commit.fixup? || commit.squash?)
|
38
|
-
end
|
30
|
+
def load_filter_list = Kit::FilterList.new(settings.fetch(:includes))
|
39
31
|
end
|
40
32
|
end
|
41
33
|
end
|
@@ -22,16 +22,14 @@ module Git
|
|
22
22
|
end
|
23
23
|
# rubocop:enable Metrics/ParameterLists
|
24
24
|
|
25
|
-
def valid?
|
26
|
-
affected_commit_trailer_lines.empty?
|
27
|
-
end
|
25
|
+
def valid? = affected_commit_trailers.empty?
|
28
26
|
|
29
27
|
def issue
|
30
28
|
return {} if valid?
|
31
29
|
|
32
30
|
{
|
33
31
|
hint: "Name must be capitalized.",
|
34
|
-
lines:
|
32
|
+
lines: affected_commit_trailers
|
35
33
|
}
|
36
34
|
end
|
37
35
|
|
@@ -19,16 +19,14 @@ module Git
|
|
19
19
|
@tally = build_tally
|
20
20
|
end
|
21
21
|
|
22
|
-
def valid?
|
23
|
-
affected_commit_trailer_lines.empty?
|
24
|
-
end
|
22
|
+
def valid? = affected_commit_trailers.empty?
|
25
23
|
|
26
24
|
def issue
|
27
25
|
return {} if valid?
|
28
26
|
|
29
27
|
{
|
30
28
|
hint: "Avoid duplication.",
|
31
|
-
lines:
|
29
|
+
lines: affected_commit_trailers
|
32
30
|
}
|
33
31
|
end
|
34
32
|
|
@@ -47,7 +45,7 @@ module Git
|
|
47
45
|
zeros = Hash.new { |new_hash, missing_key| new_hash[missing_key] = 0 }
|
48
46
|
|
49
47
|
zeros.tap do |collection|
|
50
|
-
commit.
|
48
|
+
commit.trailers.each { |line| collection[line] += 1 if parser.new(line).match? }
|
51
49
|
end
|
52
50
|
end
|
53
51
|
end
|
@@ -23,16 +23,14 @@ module Git
|
|
23
23
|
end
|
24
24
|
# rubocop:enable Metrics/ParameterLists
|
25
25
|
|
26
|
-
def valid?
|
27
|
-
affected_commit_trailer_lines.empty?
|
28
|
-
end
|
26
|
+
def valid? = affected_commit_trailers.empty?
|
29
27
|
|
30
28
|
def issue
|
31
29
|
return {} if valid?
|
32
30
|
|
33
31
|
{
|
34
32
|
hint: %(Email must follow name and use format: "<name@server.domain>".),
|
35
|
-
lines:
|
33
|
+
lines: affected_commit_trailers
|
36
34
|
}
|
37
35
|
end
|
38
36
|
|
@@ -19,24 +19,20 @@ module Git
|
|
19
19
|
@parser = parser
|
20
20
|
end
|
21
21
|
|
22
|
-
def valid?
|
23
|
-
affected_commit_trailer_lines.empty?
|
24
|
-
end
|
22
|
+
def valid? = affected_commit_trailers.empty?
|
25
23
|
|
26
24
|
def issue
|
27
25
|
return {} if valid?
|
28
26
|
|
29
27
|
{
|
30
28
|
hint: "Use format: #{filter_list.to_hint}.",
|
31
|
-
lines:
|
29
|
+
lines: affected_commit_trailers
|
32
30
|
}
|
33
31
|
end
|
34
32
|
|
35
33
|
protected
|
36
34
|
|
37
|
-
def load_filter_list
|
38
|
-
Kit::FilterList.new settings.fetch :includes
|
39
|
-
end
|
35
|
+
def load_filter_list = Kit::FilterList.new(settings.fetch(:includes))
|
40
36
|
|
41
37
|
def invalid_line? line
|
42
38
|
collaborator = parser.new line
|