git-lint 2.4.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/LICENSE.adoc +207 -155
  4. data/README.adoc +201 -203
  5. data/{bin → exe}/git-lint +1 -3
  6. data/lib/git/lint/analyzer.rb +76 -0
  7. data/lib/git/lint/analyzers/abstract.rb +8 -18
  8. data/lib/git/lint/analyzers/commit_author_capitalization.rb +3 -9
  9. data/lib/git/lint/analyzers/commit_author_email.rb +3 -9
  10. data/lib/git/lint/analyzers/commit_author_name.rb +5 -14
  11. data/lib/git/lint/analyzers/commit_body_bullet.rb +2 -9
  12. data/lib/git/lint/analyzers/commit_body_bullet_capitalization.rb +2 -9
  13. data/lib/git/lint/analyzers/commit_body_bullet_delimiter.rb +2 -9
  14. data/lib/git/lint/analyzers/commit_body_leading_line.rb +1 -7
  15. data/lib/git/lint/analyzers/commit_body_line_length.rb +4 -11
  16. data/lib/git/lint/analyzers/commit_body_paragraph_capitalization.rb +1 -7
  17. data/lib/git/lint/analyzers/commit_body_phrase.rb +2 -38
  18. data/lib/git/lint/analyzers/commit_body_presence.rb +4 -11
  19. data/lib/git/lint/analyzers/commit_body_single_bullet.rb +2 -9
  20. data/lib/git/lint/analyzers/commit_body_tracker_shorthand.rb +27 -0
  21. data/lib/git/lint/analyzers/commit_subject_length.rb +4 -11
  22. data/lib/git/lint/analyzers/commit_subject_prefix.rb +2 -9
  23. data/lib/git/lint/analyzers/commit_subject_suffix.rb +2 -13
  24. data/lib/git/lint/analyzers/commit_trailer_collaborator_capitalization.rb +3 -12
  25. data/lib/git/lint/analyzers/commit_trailer_collaborator_duplication.rb +3 -11
  26. data/lib/git/lint/analyzers/commit_trailer_collaborator_email.rb +3 -12
  27. data/lib/git/lint/analyzers/commit_trailer_collaborator_key.rb +4 -13
  28. data/lib/git/lint/analyzers/commit_trailer_collaborator_name.rb +5 -15
  29. data/lib/git/lint/cli/actions/analyze/branch.rb +43 -0
  30. data/lib/git/lint/cli/actions/analyze/commit.rb +44 -0
  31. data/lib/git/lint/cli/actions/config.rb +37 -0
  32. data/lib/git/lint/cli/actions/hook.rb +34 -0
  33. data/lib/git/lint/cli/parser.rb +33 -0
  34. data/lib/git/lint/cli/parsers/analyze.rb +40 -0
  35. data/lib/git/lint/cli/parsers/core.rb +72 -0
  36. data/lib/git/lint/cli/shell.rb +56 -0
  37. data/lib/git/lint/collector.rb +3 -4
  38. data/lib/git/lint/commits/container.rb +19 -0
  39. data/lib/git/lint/commits/loader.rb +51 -0
  40. data/lib/git/lint/commits/systems/circle_ci.rb +26 -0
  41. data/lib/git/lint/{branches/environments → commits/systems}/git_hub_action.rb +10 -8
  42. data/lib/git/lint/commits/systems/local.rb +26 -0
  43. data/lib/git/lint/{branches/environments → commits/systems}/netlify_ci.rb +14 -10
  44. data/lib/git/lint/configuration/content.rb +26 -0
  45. data/lib/git/lint/configuration/defaults.yml +118 -0
  46. data/lib/git/lint/configuration/loader.rb +50 -0
  47. data/lib/git/lint/configuration/setting.rb +24 -0
  48. data/lib/git/lint/container.rb +41 -0
  49. data/lib/git/lint/errors/severity.rb +1 -0
  50. data/lib/git/lint/errors/sha.rb +1 -0
  51. data/lib/git/lint/identity.rb +2 -1
  52. data/lib/git/lint/kit/filter_list.rb +1 -1
  53. data/lib/git/lint/parsers/trailers/collaborator.rb +1 -0
  54. data/lib/git/lint/rake/tasks.rb +5 -4
  55. data/lib/git/lint/reporters/branch.rb +12 -6
  56. data/lib/git/lint/reporters/commit.rb +3 -1
  57. data/lib/git/lint/reporters/line.rb +3 -5
  58. data/lib/git/lint/reporters/lines/paragraph.rb +3 -0
  59. data/lib/git/lint/reporters/lines/sentence.rb +3 -0
  60. data/lib/git/lint/reporters/style.rb +3 -1
  61. data/lib/git/lint/validators/capitalization.rb +1 -0
  62. data/lib/git/lint/validators/email.rb +1 -0
  63. data/lib/git/lint/validators/name.rb +1 -0
  64. data/lib/git/lint.rb +18 -47
  65. data.tar.gz.sig +0 -0
  66. metadata +54 -28
  67. metadata.gz.sig +0 -0
  68. data/lib/git/lint/analyzers/commit_body_issue_tracker_link.rb +0 -39
  69. data/lib/git/lint/branches/environments/circle_ci.rb +0 -24
  70. data/lib/git/lint/branches/environments/local.rb +0 -24
  71. data/lib/git/lint/branches/environments/travis_ci.rb +0 -49
  72. data/lib/git/lint/branches/feature.rb +0 -42
  73. data/lib/git/lint/cli.rb +0 -117
  74. data/lib/git/lint/refinements/strings.rb +0 -21
  75. data/lib/git/lint/runner.rb +0 -35
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "pathname"
4
+ require "refinements/hashes"
5
+ require "refinements/structs"
6
+ require "runcom"
7
+ require "yaml"
8
+
9
+ module Git
10
+ module Lint
11
+ module Configuration
12
+ # Represents the fully assembled Command Line Interface (CLI) configuration.
13
+ class Loader
14
+ using ::Refinements::Hashes
15
+ using ::Refinements::Structs
16
+
17
+ DEFAULTS = YAML.load_file(Pathname(__dir__).join("defaults.yml")).freeze
18
+ CLIENT = Runcom::Config.new "#{Identity::NAME}/configuration.yml", defaults: DEFAULTS
19
+
20
+ def self.call = new.call
21
+
22
+ def self.with_defaults = new(client: DEFAULTS)
23
+
24
+ def initialize content: Content.new, client: CLIENT, setting: Setting
25
+ @content = content
26
+ @client = client
27
+ @setting = setting
28
+ end
29
+
30
+ def call
31
+ client.to_h
32
+ .then do |defaults|
33
+ content.merge(
34
+ **defaults.except(:analyzers).flatten_keys,
35
+ analyzers: load_analyzer_settings(defaults)
36
+ ).freeze
37
+ end
38
+ end
39
+
40
+ private
41
+
42
+ attr_reader :content, :client, :setting
43
+
44
+ def load_analyzer_settings defaults
45
+ defaults.fetch(:analyzers).map { |id, body| setting[id:, **body] }
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Git
4
+ module Lint
5
+ module Configuration
6
+ # Defines analyzer specific settings.
7
+ Setting = Struct.new(
8
+ :enabled,
9
+ :excludes,
10
+ :id,
11
+ :includes,
12
+ :maximum,
13
+ :minimum,
14
+ :severity,
15
+ keyword_init: true
16
+ ) do
17
+ def initialize *arguments
18
+ super
19
+ freeze
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "dry-container"
4
+ require "git_plus"
5
+ require "logger"
6
+ require "pastel"
7
+
8
+ module Git
9
+ module Lint
10
+ # Provides a global gem container for injection into other objects.
11
+ module Container
12
+ extend Dry::Container::Mixin
13
+
14
+ register(:configuration) { Configuration::Loader.call }
15
+ register(:repository) { GitPlus::Repository.new }
16
+ register(:colorizer) { Pastel.new enabled: $stdout.tty? }
17
+ register(:kernel) { Kernel }
18
+
19
+ register :log_colors do
20
+ {
21
+ "DEBUG" => self[:colorizer].white.detach,
22
+ "INFO" => self[:colorizer].green.detach,
23
+ "WARN" => self[:colorizer].yellow.detach,
24
+ "ERROR" => self[:colorizer].red.detach,
25
+ "FATAL" => self[:colorizer].white.bold.on_red.detach,
26
+ "ANY" => self[:colorizer].white.bold.detach
27
+ }
28
+ end
29
+
30
+ register :logger do
31
+ Logger.new $stdout,
32
+ level: Logger.const_get(ENV.fetch("LOG_LEVEL", "INFO")),
33
+ formatter: (
34
+ lambda do |severity, _at, _name, message|
35
+ self[:log_colors][severity].call "#{message}\n"
36
+ end
37
+ )
38
+ end
39
+ end
40
+ end
41
+ end
@@ -3,6 +3,7 @@
3
3
  module Git
4
4
  module Lint
5
5
  module Errors
6
+ # Categorizes severity errors.
6
7
  class Severity < Base
7
8
  def initialize level
8
9
  super %(Invalid severity level: #{level}. Use: #{Analyzers::Abstract::LEVELS.join ", "}.)
@@ -3,6 +3,7 @@
3
3
  module Git
4
4
  module Lint
5
5
  module Errors
6
+ # Categorizes commit SHA errors.
6
7
  class SHA < Base
7
8
  def initialize sha
8
9
  super %(Invalid commit SHA: "#{sha}". Unable to obtain commit details.)
@@ -6,8 +6,9 @@ module Git
6
6
  module Identity
7
7
  NAME = "git-lint"
8
8
  LABEL = "Git Lint"
9
- VERSION = "2.4.0"
9
+ VERSION = "3.0.0"
10
10
  VERSION_LABEL = "#{LABEL} #{VERSION}".freeze
11
+ SUMMARY = "A command line interface for linting Git commits."
11
12
  end
12
13
  end
13
14
  end
@@ -3,8 +3,8 @@
3
3
  module Git
4
4
  module Lint
5
5
  module Kit
6
+ # Represents an regular expression list which may be used as an analyzer setting.
6
7
  class FilterList
7
- # Represents an regular expression list which may be used as an analyzer setting.
8
8
  def initialize list = []
9
9
  @list = Array list
10
10
  end
@@ -4,6 +4,7 @@ module Git
4
4
  module Lint
5
5
  module Parsers
6
6
  module Trailers
7
+ # Parses collaborator information within a commit trailer.
7
8
  class Collaborator
8
9
  DEFAULT_KEY_PATTERN = /\ACo.*Authored.*By.*\Z/i
9
10
 
@@ -6,25 +6,26 @@ require "git/lint"
6
6
  module Git
7
7
  module Lint
8
8
  module Rake
9
+ # Defines and installs Rake tasks for use in downstream projects.
9
10
  class Tasks
10
11
  include ::Rake::DSL
11
12
 
12
13
  def self.setup = new.install
13
14
 
14
- def initialize cli: CLI
15
- @cli = cli
15
+ def initialize shell: CLI::Shell.new
16
+ @shell = shell
16
17
  end
17
18
 
18
19
  def install
19
20
  desc "Run Git Lint"
20
21
  task :git_lint do
21
- cli.start ["--analyze"]
22
+ shell.call ["--analyze"]
22
23
  end
23
24
  end
24
25
 
25
26
  private
26
27
 
27
- attr_reader :cli
28
+ attr_reader :shell
28
29
  end
29
30
  end
30
31
  end
@@ -7,7 +7,7 @@ module Git
7
7
  module Reporters
8
8
  # Reports issues related to a single branch.
9
9
  class Branch
10
- using GitPlus::Refinements::Strings
10
+ using ::Refinements::Strings
11
11
 
12
12
  def initialize collector: Collector.new, colorizer: Pastel.new
13
13
  @collector = collector
@@ -19,6 +19,8 @@ module Git
19
19
  "#{commit_total}. #{issue_totals}.\n"
20
20
  end
21
21
 
22
+ alias to_str to_s
23
+
22
24
  private
23
25
 
24
26
  attr_reader :collector, :colorizer
@@ -31,12 +33,13 @@ module Git
31
33
 
32
34
  def commit_report
33
35
  collector.to_h.reduce "" do |details, (commit, analyzers)|
34
- details + Commit.new(commit: commit, analyzers: analyzers).to_s
36
+ details + Commit.new(commit:, analyzers:)
35
37
  end
36
38
  end
37
39
 
38
40
  def commit_total
39
- %(#{"commit".pluralize count: collector.total_commits} inspected)
41
+ total = collector.total_commits
42
+ %(#{total} #{"commit".pluralize "s", count: total} inspected)
40
43
  end
41
44
 
42
45
  def issue_totals
@@ -49,17 +52,20 @@ module Git
49
52
 
50
53
  def issue_total
51
54
  color = collector.errors? ? :red : :yellow
52
- colorizer.public_send color, "issue".pluralize(count: collector.total_issues)
55
+ total = collector.total_issues
56
+ colorizer.public_send color, "#{total} issue".pluralize("s", count: total)
53
57
  end
54
58
 
55
59
  def warning_total
56
60
  color = collector.warnings? ? :yellow : :green
57
- colorizer.public_send color, "warning".pluralize(count: collector.total_warnings)
61
+ total = collector.total_warnings
62
+ colorizer.public_send color, "#{total} warning".pluralize("s", count: total)
58
63
  end
59
64
 
60
65
  def error_total
61
66
  color = collector.errors? ? :red : :green
62
- colorizer.public_send color, "error".pluralize(count: collector.total_errors)
67
+ total = collector.total_errors
68
+ colorizer.public_send color, "#{total} error".pluralize("s", count: total)
63
69
  end
64
70
  end
65
71
  end
@@ -17,11 +17,13 @@ module Git
17
17
  "#{commit.subject}\n#{report}\n"
18
18
  end
19
19
 
20
+ alias to_str to_s
21
+
20
22
  private
21
23
 
22
24
  attr_reader :commit, :analyzers
23
25
 
24
- def report = analyzers.reduce("") { |report, analyzer| report + Style.new(analyzer).to_s }
26
+ def report = analyzers.reduce("") { |report, analyzer| report + Style.new(analyzer) }
25
27
  end
26
28
  end
27
29
  end
@@ -12,13 +12,11 @@ module Git
12
12
  end
13
13
 
14
14
  def to_s
15
- if content.include? "\n"
16
- Lines::Paragraph.new(data).to_s
17
- else
18
- Lines::Sentence.new(data).to_s
19
- end
15
+ content.include?("\n") ? Lines::Paragraph.new(data).to_s : Lines::Sentence.new(data).to_s
20
16
  end
21
17
 
18
+ alias to_str to_s
19
+
22
20
  private
23
21
 
24
22
  attr_reader :data
@@ -4,6 +4,7 @@ module Git
4
4
  module Lint
5
5
  module Reporters
6
6
  module Lines
7
+ # Reports paragraph details.
7
8
  class Paragraph
8
9
  def initialize data = {}
9
10
  @data = data
@@ -13,6 +14,8 @@ module Git
13
14
  %(#{label}"#{paragraph}"\n)
14
15
  end
15
16
 
17
+ alias to_str to_s
18
+
16
19
  private
17
20
 
18
21
  attr_reader :data
@@ -4,6 +4,7 @@ module Git
4
4
  module Lint
5
5
  module Reporters
6
6
  module Lines
7
+ # Reports sentence details.
7
8
  class Sentence
8
9
  def initialize data = {}
9
10
  @data = data
@@ -11,6 +12,8 @@ module Git
11
12
 
12
13
  def to_s = %(#{Line::DEFAULT_INDENT}Line #{number}: "#{content}"\n)
13
14
 
15
+ alias to_str to_s
16
+
14
17
  private
15
18
 
16
19
  attr_reader :data
@@ -15,6 +15,8 @@ module Git
15
15
 
16
16
  def to_s = colorizer.public_send(color, message)
17
17
 
18
+ alias to_str to_s
19
+
18
20
  private
19
21
 
20
22
  attr_reader :analyzer, :issue, :colorizer
@@ -42,7 +44,7 @@ module Git
42
44
  end
43
45
 
44
46
  def affected_lines
45
- issue.fetch(:lines, []).reduce("") { |lines, line| lines + Line.new(line).to_s }
47
+ issue.fetch(:lines, []).reduce("") { |lines, line| lines + Line.new(line) }
46
48
  end
47
49
  end
48
50
  end
@@ -3,6 +3,7 @@
3
3
  module Git
4
4
  module Lint
5
5
  module Validators
6
+ # Validates the capitalizationn of text.
6
7
  class Capitalization
7
8
  DEFAULT_PATTERN = /\A[[:upper:]].*\Z/
8
9
 
@@ -5,6 +5,7 @@ require "uri"
5
5
  module Git
6
6
  module Lint
7
7
  module Validators
8
+ # Validates the format of email addresses.
8
9
  class Email
9
10
  def initialize text, pattern: URI::MailTo::EMAIL_REGEXP
10
11
  @text = text
@@ -3,6 +3,7 @@
3
3
  module Git
4
4
  module Lint
5
5
  module Validators
6
+ # Validates the format of names.
6
7
  class Name
7
8
  DEFAULT_DELIMITER = /\s{1}/
8
9
  DEFAULT_MINIMUM = 2
data/lib/git/lint.rb CHANGED
@@ -1,50 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "zeitwerk"
3
4
  require "git_plus"
4
- require "git/lint/identity"
5
- require "git/lint/refinements/strings"
6
- require "git/lint/errors/base"
7
- require "git/lint/errors/severity"
8
- require "git/lint/errors/sha"
9
- require "git/lint/kit/filter_list"
10
- require "git/lint/validators/email"
11
- require "git/lint/validators/name"
12
- require "git/lint/validators/capitalization"
13
- require "git/lint/parsers/trailers/collaborator"
14
- require "git/lint/branches/environments/local"
15
- require "git/lint/branches/environments/circle_ci"
16
- require "git/lint/branches/environments/git_hub_action"
17
- require "git/lint/branches/environments/netlify_ci"
18
- require "git/lint/branches/environments/travis_ci"
19
- require "git/lint/branches/feature"
20
- require "git/lint/analyzers/abstract"
21
- require "git/lint/analyzers/commit_author_capitalization"
22
- require "git/lint/analyzers/commit_author_email"
23
- require "git/lint/analyzers/commit_author_name"
24
- require "git/lint/analyzers/commit_body_bullet"
25
- require "git/lint/analyzers/commit_body_bullet_capitalization"
26
- require "git/lint/analyzers/commit_body_bullet_delimiter"
27
- require "git/lint/analyzers/commit_body_issue_tracker_link"
28
- require "git/lint/analyzers/commit_body_leading_line"
29
- require "git/lint/analyzers/commit_body_line_length"
30
- require "git/lint/analyzers/commit_body_paragraph_capitalization"
31
- require "git/lint/analyzers/commit_body_phrase"
32
- require "git/lint/analyzers/commit_body_presence"
33
- require "git/lint/analyzers/commit_body_single_bullet"
34
- require "git/lint/analyzers/commit_subject_length"
35
- require "git/lint/analyzers/commit_subject_prefix"
36
- require "git/lint/analyzers/commit_subject_suffix"
37
- require "git/lint/analyzers/commit_trailer_collaborator_capitalization"
38
- require "git/lint/analyzers/commit_trailer_collaborator_duplication"
39
- require "git/lint/analyzers/commit_trailer_collaborator_email"
40
- require "git/lint/analyzers/commit_trailer_collaborator_key"
41
- require "git/lint/analyzers/commit_trailer_collaborator_name"
42
- require "git/lint/collector"
43
- require "git/lint/reporters/lines/sentence"
44
- require "git/lint/reporters/lines/paragraph"
45
- require "git/lint/reporters/line"
46
- require "git/lint/reporters/style"
47
- require "git/lint/reporters/commit"
48
- require "git/lint/reporters/branch"
49
- require "git/lint/runner"
50
- require "git/lint/cli"
5
+
6
+ Zeitwerk::Loader.new.then do |loader|
7
+ loader.inflector.inflect "cli" => "CLI",
8
+ "sha" => "SHA",
9
+ "circle_ci" => "CircleCI",
10
+ "netlify_ci" => "NetlifyCI",
11
+ "travis_ci" => "TravisCI"
12
+ loader.push_dir "#{__dir__}/.."
13
+ loader.ignore "#{__dir__}/lint/rake/setup.rb"
14
+ loader.setup
15
+ end
16
+
17
+ module Git
18
+ # Main namespace.
19
+ module Lint
20
+ end
21
+ end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git-lint
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
@@ -28,78 +28,92 @@ cert_chain:
28
28
  lkHilIrX69jq8wMPpBhlaw2mRmeSL50Wv5u6xVBvOHhXFSP1crXM95vfLhLyRYod
29
29
  W2A=
30
30
  -----END CERTIFICATE-----
31
- date: 2021-10-03 00:00:00.000000000 Z
31
+ date: 2021-12-27 00:00:00.000000000 Z
32
32
  dependencies:
33
+ - !ruby/object:Gem::Dependency
34
+ name: dry-container
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 0.9.0
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 0.9.0
33
47
  - !ruby/object:Gem::Dependency
34
48
  name: git_plus
35
49
  requirement: !ruby/object:Gem::Requirement
36
50
  requirements:
37
51
  - - "~>"
38
52
  - !ruby/object:Gem::Version
39
- version: '0.6'
53
+ version: '1.0'
40
54
  type: :runtime
41
55
  prerelease: false
42
56
  version_requirements: !ruby/object:Gem::Requirement
43
57
  requirements:
44
58
  - - "~>"
45
59
  - !ruby/object:Gem::Version
46
- version: '0.6'
60
+ version: '1.0'
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: pastel
49
63
  requirement: !ruby/object:Gem::Requirement
50
64
  requirements:
51
65
  - - "~>"
52
66
  - !ruby/object:Gem::Version
53
- version: '0.7'
67
+ version: '0.8'
54
68
  type: :runtime
55
69
  prerelease: false
56
70
  version_requirements: !ruby/object:Gem::Requirement
57
71
  requirements:
58
72
  - - "~>"
59
73
  - !ruby/object:Gem::Version
60
- version: '0.7'
74
+ version: '0.8'
61
75
  - !ruby/object:Gem::Dependency
62
76
  name: refinements
63
77
  requirement: !ruby/object:Gem::Requirement
64
78
  requirements:
65
79
  - - "~>"
66
80
  - !ruby/object:Gem::Version
67
- version: '8.4'
81
+ version: '9.0'
68
82
  type: :runtime
69
83
  prerelease: false
70
84
  version_requirements: !ruby/object:Gem::Requirement
71
85
  requirements:
72
86
  - - "~>"
73
87
  - !ruby/object:Gem::Version
74
- version: '8.4'
88
+ version: '9.0'
75
89
  - !ruby/object:Gem::Dependency
76
90
  name: runcom
77
91
  requirement: !ruby/object:Gem::Requirement
78
92
  requirements:
79
93
  - - "~>"
80
94
  - !ruby/object:Gem::Version
81
- version: '7.0'
95
+ version: '8.0'
82
96
  type: :runtime
83
97
  prerelease: false
84
98
  version_requirements: !ruby/object:Gem::Requirement
85
99
  requirements:
86
100
  - - "~>"
87
101
  - !ruby/object:Gem::Version
88
- version: '7.0'
102
+ version: '8.0'
89
103
  - !ruby/object:Gem::Dependency
90
- name: thor
104
+ name: zeitwerk
91
105
  requirement: !ruby/object:Gem::Requirement
92
106
  requirements:
93
107
  - - "~>"
94
108
  - !ruby/object:Gem::Version
95
- version: '0.20'
109
+ version: '2.5'
96
110
  type: :runtime
97
111
  prerelease: false
98
112
  version_requirements: !ruby/object:Gem::Requirement
99
113
  requirements:
100
114
  - - "~>"
101
115
  - !ruby/object:Gem::Version
102
- version: '0.20'
116
+ version: '2.5'
103
117
  description:
104
118
  email:
105
119
  - brooke@alchemists.io
@@ -112,8 +126,9 @@ extra_rdoc_files:
112
126
  files:
113
127
  - LICENSE.adoc
114
128
  - README.adoc
115
- - bin/git-lint
129
+ - exe/git-lint
116
130
  - lib/git/lint.rb
131
+ - lib/git/lint/analyzer.rb
117
132
  - lib/git/lint/analyzers/abstract.rb
118
133
  - lib/git/lint/analyzers/commit_author_capitalization.rb
119
134
  - lib/git/lint/analyzers/commit_author_email.rb
@@ -121,13 +136,13 @@ files:
121
136
  - lib/git/lint/analyzers/commit_body_bullet.rb
122
137
  - lib/git/lint/analyzers/commit_body_bullet_capitalization.rb
123
138
  - lib/git/lint/analyzers/commit_body_bullet_delimiter.rb
124
- - lib/git/lint/analyzers/commit_body_issue_tracker_link.rb
125
139
  - lib/git/lint/analyzers/commit_body_leading_line.rb
126
140
  - lib/git/lint/analyzers/commit_body_line_length.rb
127
141
  - lib/git/lint/analyzers/commit_body_paragraph_capitalization.rb
128
142
  - lib/git/lint/analyzers/commit_body_phrase.rb
129
143
  - lib/git/lint/analyzers/commit_body_presence.rb
130
144
  - lib/git/lint/analyzers/commit_body_single_bullet.rb
145
+ - lib/git/lint/analyzers/commit_body_tracker_shorthand.rb
131
146
  - lib/git/lint/analyzers/commit_subject_length.rb
132
147
  - lib/git/lint/analyzers/commit_subject_prefix.rb
133
148
  - lib/git/lint/analyzers/commit_subject_suffix.rb
@@ -136,14 +151,26 @@ files:
136
151
  - lib/git/lint/analyzers/commit_trailer_collaborator_email.rb
137
152
  - lib/git/lint/analyzers/commit_trailer_collaborator_key.rb
138
153
  - lib/git/lint/analyzers/commit_trailer_collaborator_name.rb
139
- - lib/git/lint/branches/environments/circle_ci.rb
140
- - lib/git/lint/branches/environments/git_hub_action.rb
141
- - lib/git/lint/branches/environments/local.rb
142
- - lib/git/lint/branches/environments/netlify_ci.rb
143
- - lib/git/lint/branches/environments/travis_ci.rb
144
- - lib/git/lint/branches/feature.rb
145
- - lib/git/lint/cli.rb
154
+ - lib/git/lint/cli/actions/analyze/branch.rb
155
+ - lib/git/lint/cli/actions/analyze/commit.rb
156
+ - lib/git/lint/cli/actions/config.rb
157
+ - lib/git/lint/cli/actions/hook.rb
158
+ - lib/git/lint/cli/parser.rb
159
+ - lib/git/lint/cli/parsers/analyze.rb
160
+ - lib/git/lint/cli/parsers/core.rb
161
+ - lib/git/lint/cli/shell.rb
146
162
  - lib/git/lint/collector.rb
163
+ - lib/git/lint/commits/container.rb
164
+ - lib/git/lint/commits/loader.rb
165
+ - lib/git/lint/commits/systems/circle_ci.rb
166
+ - lib/git/lint/commits/systems/git_hub_action.rb
167
+ - lib/git/lint/commits/systems/local.rb
168
+ - lib/git/lint/commits/systems/netlify_ci.rb
169
+ - lib/git/lint/configuration/content.rb
170
+ - lib/git/lint/configuration/defaults.yml
171
+ - lib/git/lint/configuration/loader.rb
172
+ - lib/git/lint/configuration/setting.rb
173
+ - lib/git/lint/container.rb
147
174
  - lib/git/lint/errors/base.rb
148
175
  - lib/git/lint/errors/severity.rb
149
176
  - lib/git/lint/errors/sha.rb
@@ -152,24 +179,23 @@ files:
152
179
  - lib/git/lint/parsers/trailers/collaborator.rb
153
180
  - lib/git/lint/rake/setup.rb
154
181
  - lib/git/lint/rake/tasks.rb
155
- - lib/git/lint/refinements/strings.rb
156
182
  - lib/git/lint/reporters/branch.rb
157
183
  - lib/git/lint/reporters/commit.rb
158
184
  - lib/git/lint/reporters/line.rb
159
185
  - lib/git/lint/reporters/lines/paragraph.rb
160
186
  - lib/git/lint/reporters/lines/sentence.rb
161
187
  - lib/git/lint/reporters/style.rb
162
- - lib/git/lint/runner.rb
163
188
  - lib/git/lint/validators/capitalization.rb
164
189
  - lib/git/lint/validators/email.rb
165
190
  - lib/git/lint/validators/name.rb
166
191
  homepage: https://www.alchemists.io/projects/git-lint
167
192
  licenses:
168
- - Apache-2.0
193
+ - Hippocratic-3.0
169
194
  metadata:
170
195
  bug_tracker_uri: https://github.com/bkuhlmann/git-lint/issues
171
196
  changelog_uri: https://www.alchemists.io/projects/git-lint/changes.html
172
197
  documentation_uri: https://www.alchemists.io/projects/git-lint
198
+ rubygems_mfa_required: 'true'
173
199
  source_code_uri: https://github.com/bkuhlmann/git-lint
174
200
  post_install_message:
175
201
  rdoc_options: []
@@ -179,14 +205,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
179
205
  requirements:
180
206
  - - "~>"
181
207
  - !ruby/object:Gem::Version
182
- version: '3.0'
208
+ version: '3.1'
183
209
  required_rubygems_version: !ruby/object:Gem::Requirement
184
210
  requirements:
185
211
  - - ">="
186
212
  - !ruby/object:Gem::Version
187
213
  version: '0'
188
214
  requirements: []
189
- rubygems_version: 3.2.28
215
+ rubygems_version: 3.3.3
190
216
  signing_key:
191
217
  specification_version: 4
192
218
  summary: A command line interface for linting Git commits.
metadata.gz.sig CHANGED
Binary file