git-lint 1.3.0 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/README.adoc +42 -122
  5. data/lib/git/lint.rb +1 -3
  6. data/lib/git/lint/analyzers/abstract.rb +3 -3
  7. data/lib/git/lint/analyzers/commit_author_name.rb +1 -1
  8. data/lib/git/lint/analyzers/commit_body_leading_line.rb +3 -3
  9. data/lib/git/lint/analyzers/commit_subject_prefix.rb +1 -1
  10. data/lib/git/lint/analyzers/commit_trailer_collaborator_capitalization.rb +2 -2
  11. data/lib/git/lint/analyzers/commit_trailer_collaborator_duplication.rb +3 -3
  12. data/lib/git/lint/analyzers/commit_trailer_collaborator_email.rb +2 -2
  13. data/lib/git/lint/analyzers/commit_trailer_collaborator_key.rb +2 -2
  14. data/lib/git/lint/analyzers/commit_trailer_collaborator_name.rb +2 -2
  15. data/lib/git/lint/branches/environments/circle_ci.rb +6 -6
  16. data/lib/git/lint/branches/environments/git_hub_action.rb +6 -6
  17. data/lib/git/lint/branches/environments/local.rb +6 -6
  18. data/lib/git/lint/branches/environments/netlify_ci.rb +8 -8
  19. data/lib/git/lint/branches/environments/travis_ci.rb +10 -10
  20. data/lib/git/lint/branches/feature.rb +6 -7
  21. data/lib/git/lint/cli.rb +10 -15
  22. data/lib/git/lint/collector.rb +2 -2
  23. data/lib/git/lint/identity.rb +1 -1
  24. data/lib/git/lint/parsers/trailers/collaborator.rb +2 -2
  25. data/lib/git/lint/reporters/branch.rb +14 -14
  26. data/lib/git/lint/runner.rb +5 -4
  27. data/lib/git/lint/validators/capitalization.rb +1 -1
  28. data/lib/git/lint/validators/name.rb +1 -1
  29. metadata +30 -215
  30. metadata.gz.sig +0 -0
  31. data/lib/git/kit/repo.rb +0 -30
  32. data/lib/git/lint/commits/saved.rb +0 -104
  33. data/lib/git/lint/commits/unsaved.rb +0 -120
@@ -6,21 +6,21 @@ module Git
6
6
  module Environments
7
7
  # Provides GitHub Action build environment feature branch information.
8
8
  class GitHubAction
9
- def initialize repo: Git::Kit::Repo.new
10
- @repo = repo
9
+ def initialize repository: GitPlus::Repository.new
10
+ @repository = repository
11
11
  end
12
12
 
13
13
  def name
14
- "origin/#{repo.branch_name}"
14
+ "origin/#{repository.branch_name}"
15
15
  end
16
16
 
17
- def shas
18
- repo.shas start: "origin/master", finish: name
17
+ def commits
18
+ repository.commits "origin/#{repository.branch_default}..#{name}"
19
19
  end
20
20
 
21
21
  private
22
22
 
23
- attr_reader :repo
23
+ attr_reader :repository
24
24
  end
25
25
  end
26
26
  end
@@ -6,21 +6,21 @@ module Git
6
6
  module Environments
7
7
  # Provides local build environment feature branch information.
8
8
  class Local
9
- def initialize repo: Git::Kit::Repo.new
10
- @repo = repo
9
+ def initialize repository: GitPlus::Repository.new
10
+ @repository = repository
11
11
  end
12
12
 
13
13
  def name
14
- repo.branch_name
14
+ repository.branch_name
15
15
  end
16
16
 
17
- def shas
18
- repo.shas start: "master", finish: name
17
+ def commits
18
+ repository.commits "#{repository.branch_default}..#{name}"
19
19
  end
20
20
 
21
21
  private
22
22
 
23
- attr_reader :repo
23
+ attr_reader :repository
24
24
  end
25
25
  end
26
26
  end
@@ -8,25 +8,25 @@ module Git
8
8
  module Environments
9
9
  # Provides Netlify CI build environment feature branch information.
10
10
  class NetlifyCI
11
- def initialize environment: ENV, repo: Git::Kit::Repo.new, shell: Open3
12
- @environment = environment
13
- @repo = repo
11
+ def initialize repository: GitPlus::Repository.new, shell: Open3, environment: ENV
12
+ @repository = repository
14
13
  @shell = shell
14
+ @environment = environment
15
15
  end
16
16
 
17
17
  def name
18
18
  environment["HEAD"]
19
19
  end
20
20
 
21
- def shas
22
- shell.capture2e "git remote add -f origin #{environment["REPOSITORY_URL"]}"
23
- shell.capture2e "git fetch origin #{name}:#{name}"
24
- repo.shas start: "origin/master", finish: "origin/#{name}"
21
+ def commits
22
+ shell.capture3 "git remote add -f origin #{environment["REPOSITORY_URL"]}"
23
+ shell.capture3 "git fetch origin #{name}:#{name}"
24
+ repository.commits "origin/#{repository.branch_default}..origin/#{name}"
25
25
  end
26
26
 
27
27
  private
28
28
 
29
- attr_reader :environment, :repo, :shell
29
+ attr_reader :repository, :shell, :environment
30
30
  end
31
31
  end
32
32
  end
@@ -8,35 +8,35 @@ module Git
8
8
  module Environments
9
9
  # Provides Travis CI build environment feature branch information.
10
10
  class TravisCI
11
- def initialize environment: ENV, repo: Git::Kit::Repo.new, shell: Open3
12
- @environment = environment
13
- @repo = repo
11
+ def initialize repository: GitPlus::Repository.new, shell: Open3, environment: ENV
12
+ @repository = repository
14
13
  @shell = shell
14
+ @environment = environment
15
15
  end
16
16
 
17
17
  def name
18
18
  pull_request_branch.empty? ? ci_branch : pull_request_branch
19
19
  end
20
20
 
21
- def shas
21
+ def commits
22
22
  prepare_project
23
- repo.shas start: "origin/master", finish: name
23
+ repository.commits "origin/#{repository.branch_default}..#{name}"
24
24
  end
25
25
 
26
26
  private
27
27
 
28
- attr_reader :environment, :repo, :shell
28
+ attr_reader :environment, :repository, :shell
29
29
 
30
30
  def prepare_project
31
31
  slug = pull_request_slug
32
32
 
33
33
  unless slug.empty?
34
- shell.capture2e "git remote add -f original_branch https://github.com/#{slug}.git"
35
- shell.capture2e "git fetch original_branch #{name}:#{name}"
34
+ shell.capture3 "git remote add -f original_branch https://github.com/#{slug}.git"
35
+ shell.capture3 "git fetch original_branch #{name}:#{name}"
36
36
  end
37
37
 
38
- shell.capture2e "git remote set-branches --add origin master"
39
- shell.capture2e "git fetch"
38
+ shell.capture3 "git remote set-branches --add origin #{repository.branch_default}"
39
+ shell.capture3 "git fetch"
40
40
  end
41
41
 
42
42
  def ci_branch
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "forwardable"
4
+ require "refinements/strings"
4
5
 
5
6
  module Git
6
7
  module Lint
@@ -9,9 +10,11 @@ module Git
9
10
  class Feature
10
11
  extend Forwardable
11
12
 
12
- def_delegators :selected_environment, :name, :shas
13
+ using ::Refinements::Strings
13
14
 
14
- def initialize environment: ENV, git_repo: Git::Kit::Repo.new
15
+ def_delegators :selected_environment, :name, :commits
16
+
17
+ def initialize environment: ENV, git_repo: GitPlus::Repository.new
15
18
  message = "Invalid repository. Are you within a Git-enabled project?"
16
19
  fail Errors::Base, message unless git_repo.exist?
17
20
 
@@ -19,10 +22,6 @@ module Git
19
22
  @selected_environment = load_environment
20
23
  end
21
24
 
22
- def commits
23
- shas.map { |sha| Commits::Saved.new sha: sha }
24
- end
25
-
26
25
  private
27
26
 
28
27
  attr_reader :current_environment, :selected_environment
@@ -37,7 +36,7 @@ module Git
37
36
  end
38
37
 
39
38
  def key? key
40
- current_environment[key] == "true"
39
+ current_environment.fetch(key, "false").to_bool
41
40
  end
42
41
  end
43
42
  end
data/lib/git/lint/cli.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  require "thor"
4
4
  require "thor/actions"
5
5
  require "runcom"
6
+ require "pathname"
6
7
  require "pastel"
7
8
 
8
9
  module Git
@@ -60,7 +61,9 @@ module Git
60
61
  type: :array,
61
62
  default: []
62
63
  def analyze
63
- collector = analyze_commits options.commits
64
+ # FIX: Need to accept SHAs.
65
+ # collector = analyze_commits options.commits
66
+ collector = analyze_commits
64
67
  abort if collector.errors?
65
68
  rescue Errors::Base => error
66
69
  abort colorizer.red("#{Identity::LABEL}: #{error.message}")
@@ -68,17 +71,14 @@ module Git
68
71
 
69
72
  desc "--hook", "Add Git Hook support."
70
73
  map "--hook" => :hook
71
- method_option :commit_message,
72
- desc: "Analyze commit message.",
73
- banner: "PATH",
74
- type: :string
74
+ method_option :commit_message, desc: "Analyze commit message.", banner: "PATH", type: :string
75
75
  def hook
76
76
  if options.commit_message?
77
77
  check_commit_message options.commit_message
78
78
  else
79
79
  help "--hook"
80
80
  end
81
- rescue Errors::Base => error
81
+ rescue Errors::Base, GitPlus::Errors::Base => error
82
82
  abort colorizer.red("#{Identity::LABEL}: #{error.message}")
83
83
  end
84
84
 
@@ -98,21 +98,16 @@ module Git
98
98
 
99
99
  attr_reader :configuration, :runner, :colorizer
100
100
 
101
- def load_collector shas
102
- commits = shas.map { |sha| Commits::Saved.new sha: sha }
103
- commits.empty? ? runner.call : runner.call(commits: commits)
104
- end
105
-
106
- def analyze_commits shas
107
- load_collector(shas).tap do |collector|
101
+ def analyze_commits
102
+ runner.call.tap do |collector|
108
103
  reporter = Reporters::Branch.new collector: collector
109
104
  say reporter.to_s
110
105
  end
111
106
  end
112
107
 
113
108
  def check_commit_message path
114
- commit = Commits::Unsaved.new path: path
115
- collector = runner.call commits: commit
109
+ commit = GitPlus::Repository.new.unsaved Pathname(path)
110
+ collector = runner.call commits: [commit]
116
111
  reporter = Reporters::Branch.new collector: collector
117
112
  say reporter.to_s
118
113
  abort if collector.errors?
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "refinements/strings"
3
+ require "refinements/hashes"
4
4
 
5
5
  module Git
6
6
  module Lint
7
7
  class Collector
8
- using Refinements::Strings
8
+ using ::Refinements::Hashes
9
9
 
10
10
  def initialize
11
11
  @collection = Hash.new { |default, missing_id| default[missing_id] = [] }
@@ -6,7 +6,7 @@ module Git
6
6
  module Identity
7
7
  NAME = "git-lint"
8
8
  LABEL = "Git Lint"
9
- VERSION = "1.3.0"
9
+ VERSION = "2.2.1"
10
10
  VERSION_LABEL = "#{LABEL} #{VERSION}"
11
11
  end
12
12
  end
@@ -5,7 +5,7 @@ module Git
5
5
  module Parsers
6
6
  module Trailers
7
7
  class Collaborator
8
- DEFAULT_KEY_PATTERN = /\ACo.*Authored.*By.*\Z/i.freeze
8
+ DEFAULT_KEY_PATTERN = /\ACo.*Authored.*By.*\Z/i
9
9
 
10
10
  DEFAULT_MATCH_PATTERN = /
11
11
  (?<key>\A.+) # Key (anchored to start of line).
@@ -15,7 +15,7 @@ module Git
15
15
  (?<name_space>\s?) # Space delimiter (optional).
16
16
  (?<email><.+>)? # Collaborator email (optional).
17
17
  \Z # End of line.
18
- /x.freeze
18
+ /x
19
19
 
20
20
  def initialize text,
21
21
  key_pattern: DEFAULT_KEY_PATTERN,
@@ -23,22 +23,30 @@ module Git
23
23
 
24
24
  attr_reader :collector, :colorizer
25
25
 
26
+ def branch_report
27
+ return "" unless collector.issues?
28
+
29
+ "\n\n#{commit_report}".chomp
30
+ end
31
+
26
32
  def commit_report
27
33
  collector.to_h.reduce "" do |details, (commit, analyzers)|
28
34
  details + Commit.new(commit: commit, analyzers: analyzers).to_s
29
35
  end
30
36
  end
31
37
 
32
- def branch_report
33
- return "" unless collector.issues?
34
-
35
- "\n\n#{commit_report}".chomp "\n"
36
- end
37
-
38
38
  def commit_total
39
39
  %(#{"commit".pluralize count: collector.total_commits} inspected)
40
40
  end
41
41
 
42
+ def issue_totals
43
+ if collector.issues?
44
+ "#{issue_total} detected (#{warning_total}, #{error_total})"
45
+ else
46
+ colorizer.green("0 issues") + " detected"
47
+ end
48
+ end
49
+
42
50
  def issue_total
43
51
  color = collector.errors? ? :red : :yellow
44
52
  colorizer.public_send color, "issue".pluralize(count: collector.total_issues)
@@ -53,14 +61,6 @@ module Git
53
61
  color = collector.errors? ? :red : :green
54
62
  colorizer.public_send color, "error".pluralize(count: collector.total_errors)
55
63
  end
56
-
57
- def issue_totals
58
- if collector.issues?
59
- "#{issue_total} detected (#{warning_total}, #{error_total})"
60
- else
61
- colorizer.green("0 issues") + " detected"
62
- end
63
- end
64
64
  end
65
65
  end
66
66
  end
@@ -3,19 +3,20 @@
3
3
  module Git
4
4
  module Lint
5
5
  class Runner
6
- def initialize configuration:, collector: Collector.new
6
+ def initialize configuration:, branch: Branches::Feature.new, collector: Collector.new
7
7
  @configuration = configuration
8
+ @branch = branch
8
9
  @collector = collector
9
10
  end
10
11
 
11
- def call commits: Branches::Feature.new.commits
12
- Array(commits).map { |commit| check commit }
12
+ def call commits: branch.commits
13
+ commits.map { |commit| check commit }
13
14
  collector
14
15
  end
15
16
 
16
17
  private
17
18
 
18
- attr_reader :configuration, :collector
19
+ attr_reader :configuration, :branch, :collector
19
20
 
20
21
  def check commit
21
22
  configuration.map { |id, settings| load_analyzer id, commit, settings }
@@ -4,7 +4,7 @@ module Git
4
4
  module Lint
5
5
  module Validators
6
6
  class Capitalization
7
- DEFAULT_PATTERN = /\A[[:upper:]].*\Z/.freeze
7
+ DEFAULT_PATTERN = /\A[[:upper:]].*\Z/
8
8
 
9
9
  def initialize text, delimiter: Name::DEFAULT_DELIMITER, pattern: DEFAULT_PATTERN
10
10
  @text = String text
@@ -4,7 +4,7 @@ module Git
4
4
  module Lint
5
5
  module Validators
6
6
  class Name
7
- DEFAULT_DELIMITER = /\s{1}/.freeze
7
+ DEFAULT_DELIMITER = /\s{1}/
8
8
  DEFAULT_MINIMUM = 2
9
9
 
10
10
  def initialize text, delimiter: DEFAULT_DELIMITER, minimum: DEFAULT_MINIMUM
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git-lint
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -10,9 +10,9 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIC/jCCAeagAwIBAgIBAzANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpicm9v
14
- a2UvREM9YWxjaGVtaXN0cy9EQz1pbzAeFw0yMDAzMTUxNDQ1MzJaFw0yMTAzMTUx
15
- NDQ1MzJaMCUxIzAhBgNVBAMMGmJyb29rZS9EQz1hbGNoZW1pc3RzL0RDPWlvMIIB
13
+ MIIC/jCCAeagAwIBAgIBBDANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpicm9v
14
+ a2UvREM9YWxjaGVtaXN0cy9EQz1pbzAeFw0yMTAzMTkxMjQ4MDZaFw0yMjAzMTkx
15
+ MjQ4MDZaMCUxIzAhBgNVBAMMGmJyb29rZS9EQz1hbGNoZW1pc3RzL0RDPWlvMIIB
16
16
  IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6l1qpXTiomH1RfMRloyw7MiE
17
17
  xyVx/x8Yc3EupdH7uhNaTXQGyORN6aOY//1QXXMHIZ9tW74nZLhesWMSUMYy0XhB
18
18
  brs+KkurHnc9FnEJAbG7ebGvl/ncqZt72nQvaxpDxvuCBHgJAz+8i5wl6FhLw+oT
@@ -20,268 +20,86 @@ cert_chain:
20
20
  D5vkU0YlAm1r98BymuJlcQ1qdkVEI1d48ph4kcS0S0nv1RiuyVb6TCAR3Nu3VaVq
21
21
  3fPzZKJLZBx67UvXdbdicWPiUR75elI4PXpLIic3xytaF52ZJYyKZCNZJhNwfQID
22
22
  AQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU0nzow9vc
23
- 2CdikiiE3fJhP/gY4ggwDQYJKoZIhvcNAQELBQADggEBAIHhAlD3po4sTYqacXaQ
24
- XI9jIhrfMy//2PgbHWcETtlJPBeNUbbSNBABcllUHKqYsVDlSvSmss034KSWNR8F
25
- bF1GcloicyvcCC4y6IoW4it0COAcdeaaxkxiBSgKdQFpff9REnDlIKK4uQ9lLxIo
26
- Y2G5xubiziKZkyfWFuSr67PIjW3Bu673D1JVBArhA1qbgQmYQcy1CkGOjo+iO8Nf
27
- 7u/QSfBHb+r/bXhKscDgPpnKwbUmvgO2+94zJG9KsrmIydlzYfsD09aXKx0t6Xy4
28
- 2XV8FRa7/JimI07sPLC13eLY3xd/aYTi85Z782KIA4j0G8XEEWAX0ouBhlXPocZv
29
- QWc=
23
+ 2CdikiiE3fJhP/gY4ggwDQYJKoZIhvcNAQELBQADggEBAEjpaOXHHp8s/7GL2qCb
24
+ YAs7urOLv9VHSPfQWAwaTMVnSsIf3Sw4xzISOP/mmfEPBPXtz61K5esrE/uTFtgb
25
+ FyjxQk2H0sEWgrRXGGNHBWQRhhEs7LP/TByoC15A0br++xLxRz4r7HBLGAWQQDpg
26
+ 66BJ2TBVjxS6K64tKbq7+ACyrOZGgTfNHACh4M076y0x0oRf/rwBrU39/KRfuhbb
27
+ cm+nNCEtO35gTmZ2bVDHLGvWazi3gJt6+huQjfXTCUUG2YYBxwhu+GPdAGQPxpf9
28
+ lkHilIrX69jq8wMPpBhlaw2mRmeSL50Wv5u6xVBvOHhXFSP1crXM95vfLhLyRYod
29
+ W2A=
30
30
  -----END CERTIFICATE-----
31
- date: 2020-11-15 00:00:00.000000000 Z
31
+ date: 2021-06-04 00:00:00.000000000 Z
32
32
  dependencies:
33
33
  - !ruby/object:Gem::Dependency
34
- name: pastel
34
+ name: git_plus
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.7'
39
+ version: '0.4'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0.7'
46
+ version: '0.4'
47
47
  - !ruby/object:Gem::Dependency
48
- name: refinements
48
+ name: pastel
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '7.14'
53
+ version: '0.7'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '7.14'
60
+ version: '0.7'
61
61
  - !ruby/object:Gem::Dependency
62
- name: runcom
62
+ name: refinements
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '6.4'
67
+ version: '8.0'
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '6.4'
74
+ version: '8.0'
75
75
  - !ruby/object:Gem::Dependency
76
- name: thor
76
+ name: runcom
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '0.20'
81
+ version: '7.0'
82
82
  type: :runtime
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '0.20'
89
- - !ruby/object:Gem::Dependency
90
- name: bundler-audit
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '0.7'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '0.7'
103
- - !ruby/object:Gem::Dependency
104
- name: bundler-leak
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: '0.2'
110
- type: :development
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - "~>"
115
- - !ruby/object:Gem::Version
116
- version: '0.2'
117
- - !ruby/object:Gem::Dependency
118
- name: gemsmith
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - "~>"
122
- - !ruby/object:Gem::Version
123
- version: '14.8'
124
- type: :development
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - "~>"
129
- - !ruby/object:Gem::Version
130
- version: '14.8'
131
- - !ruby/object:Gem::Dependency
132
- name: guard-rspec
133
- requirement: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - "~>"
136
- - !ruby/object:Gem::Version
137
- version: '4.7'
138
- type: :development
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - "~>"
143
- - !ruby/object:Gem::Version
144
- version: '4.7'
145
- - !ruby/object:Gem::Dependency
146
- name: pry
147
- requirement: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - "~>"
150
- - !ruby/object:Gem::Version
151
- version: '0.13'
152
- type: :development
153
- prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - "~>"
157
- - !ruby/object:Gem::Version
158
- version: '0.13'
159
- - !ruby/object:Gem::Dependency
160
- name: pry-byebug
161
- requirement: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - "~>"
164
- - !ruby/object:Gem::Version
165
- version: '3.9'
166
- type: :development
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- requirements:
170
- - - "~>"
171
- - !ruby/object:Gem::Version
172
- version: '3.9'
88
+ version: '7.0'
173
89
  - !ruby/object:Gem::Dependency
174
- name: rake
175
- requirement: !ruby/object:Gem::Requirement
176
- requirements:
177
- - - "~>"
178
- - !ruby/object:Gem::Version
179
- version: '13.0'
180
- type: :development
181
- prerelease: false
182
- version_requirements: !ruby/object:Gem::Requirement
183
- requirements:
184
- - - "~>"
185
- - !ruby/object:Gem::Version
186
- version: '13.0'
187
- - !ruby/object:Gem::Dependency
188
- name: reek
189
- requirement: !ruby/object:Gem::Requirement
190
- requirements:
191
- - - "~>"
192
- - !ruby/object:Gem::Version
193
- version: '6.0'
194
- type: :development
195
- prerelease: false
196
- version_requirements: !ruby/object:Gem::Requirement
197
- requirements:
198
- - - "~>"
199
- - !ruby/object:Gem::Version
200
- version: '6.0'
201
- - !ruby/object:Gem::Dependency
202
- name: rspec
203
- requirement: !ruby/object:Gem::Requirement
204
- requirements:
205
- - - "~>"
206
- - !ruby/object:Gem::Version
207
- version: '3.10'
208
- type: :development
209
- prerelease: false
210
- version_requirements: !ruby/object:Gem::Requirement
211
- requirements:
212
- - - "~>"
213
- - !ruby/object:Gem::Version
214
- version: '3.10'
215
- - !ruby/object:Gem::Dependency
216
- name: rubocop
217
- requirement: !ruby/object:Gem::Requirement
218
- requirements:
219
- - - "~>"
220
- - !ruby/object:Gem::Version
221
- version: '1.3'
222
- type: :development
223
- prerelease: false
224
- version_requirements: !ruby/object:Gem::Requirement
225
- requirements:
226
- - - "~>"
227
- - !ruby/object:Gem::Version
228
- version: '1.3'
229
- - !ruby/object:Gem::Dependency
230
- name: rubocop-performance
231
- requirement: !ruby/object:Gem::Requirement
232
- requirements:
233
- - - "~>"
234
- - !ruby/object:Gem::Version
235
- version: '1.8'
236
- type: :development
237
- prerelease: false
238
- version_requirements: !ruby/object:Gem::Requirement
239
- requirements:
240
- - - "~>"
241
- - !ruby/object:Gem::Version
242
- version: '1.8'
243
- - !ruby/object:Gem::Dependency
244
- name: rubocop-rake
245
- requirement: !ruby/object:Gem::Requirement
246
- requirements:
247
- - - "~>"
248
- - !ruby/object:Gem::Version
249
- version: '0.5'
250
- type: :development
251
- prerelease: false
252
- version_requirements: !ruby/object:Gem::Requirement
253
- requirements:
254
- - - "~>"
255
- - !ruby/object:Gem::Version
256
- version: '0.5'
257
- - !ruby/object:Gem::Dependency
258
- name: rubocop-rspec
259
- requirement: !ruby/object:Gem::Requirement
260
- requirements:
261
- - - "~>"
262
- - !ruby/object:Gem::Version
263
- version: '2.0'
264
- type: :development
265
- prerelease: false
266
- version_requirements: !ruby/object:Gem::Requirement
267
- requirements:
268
- - - "~>"
269
- - !ruby/object:Gem::Version
270
- version: '2.0'
271
- - !ruby/object:Gem::Dependency
272
- name: simplecov
90
+ name: thor
273
91
  requirement: !ruby/object:Gem::Requirement
274
92
  requirements:
275
93
  - - "~>"
276
94
  - !ruby/object:Gem::Version
277
- version: '0.19'
278
- type: :development
95
+ version: '0.20'
96
+ type: :runtime
279
97
  prerelease: false
280
98
  version_requirements: !ruby/object:Gem::Requirement
281
99
  requirements:
282
100
  - - "~>"
283
101
  - !ruby/object:Gem::Version
284
- version: '0.19'
102
+ version: '0.20'
285
103
  description:
286
104
  email:
287
105
  - brooke@alchemists.io
@@ -295,7 +113,6 @@ files:
295
113
  - LICENSE.adoc
296
114
  - README.adoc
297
115
  - bin/git-lint
298
- - lib/git/kit/repo.rb
299
116
  - lib/git/lint.rb
300
117
  - lib/git/lint/analyzers/abstract.rb
301
118
  - lib/git/lint/analyzers/commit_author_capitalization.rb
@@ -327,8 +144,6 @@ files:
327
144
  - lib/git/lint/branches/feature.rb
328
145
  - lib/git/lint/cli.rb
329
146
  - lib/git/lint/collector.rb
330
- - lib/git/lint/commits/saved.rb
331
- - lib/git/lint/commits/unsaved.rb
332
147
  - lib/git/lint/errors/base.rb
333
148
  - lib/git/lint/errors/severity.rb
334
149
  - lib/git/lint/errors/sha.rb
@@ -364,14 +179,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
364
179
  requirements:
365
180
  - - "~>"
366
181
  - !ruby/object:Gem::Version
367
- version: '2.7'
182
+ version: '3.0'
368
183
  required_rubygems_version: !ruby/object:Gem::Requirement
369
184
  requirements:
370
185
  - - ">="
371
186
  - !ruby/object:Gem::Version
372
187
  version: '0'
373
188
  requirements: []
374
- rubygems_version: 3.1.4
189
+ rubygems_version: 3.2.19
375
190
  signing_key:
376
191
  specification_version: 4
377
192
  summary: A command line interface for linting Git commits.