git-lint 1.0.1 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +3 -2
- data/LICENSE.adoc +1 -1
- data/README.adoc +103 -34
- data/lib/git/lint.rb +1 -0
- data/lib/git/lint/analyzers/abstract.rb +1 -0
- data/lib/git/lint/analyzers/commit_body_bullet_delimiter.rb +5 -1
- data/lib/git/lint/analyzers/commit_body_leading_line.rb +2 -1
- data/lib/git/lint/branches/environments/git_hub_action.rb +28 -0
- data/lib/git/lint/branches/feature.rb +1 -0
- data/lib/git/lint/identity.rb +1 -1
- metadata +8 -189
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6cb65f70f2b6923d02f717470a175b4a12f4aadf8f138ce2687ebdd73be3d300
|
4
|
+
data.tar.gz: 69a3dae72502594bd98c0397c29431bbfa4479fc6b5cebe8e76ce4149505085d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 516084aa71ca86ec7fb5b4acbbc5eac343d6c4d44cc01ea8742c7882a3c203bafb9108fa788f0a00c4874bca40e810080b9b84d5d3ae583585e6efdef8166eb2
|
7
|
+
data.tar.gz: 1dbdb7ecf79311784ef01ede90695df2093fbd7d43b918e39d6bb596843bbaa87d6df59a8f57a901a8fdfb4cc5a935d92d7ad69bdde5f24ba0859f8d5efdb92f
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
@@ -1,2 +1,3 @@
|
|
1
|
-
|
2
|
-
�
|
1
|
+
��)�*4�>{��K��O��B
|
2
|
+
m����8��Tsb��j�Ҹ���~���댙k}H�� �2?��H�]�Xq> Pa�wN�Vv��T��X㥇���Bı���jz8��;�
|
3
|
+
�Kؗ��*o4ؿ�b�wNN�����p}֎@�",�b�\�3�EN̅�L�*j��O���b}�ӅM9��ěe H�˳�P
|
data/LICENSE.adoc
CHANGED
@@ -150,7 +150,7 @@ additional liability.
|
|
150
150
|
|
151
151
|
END OF TERMS AND CONDITIONS
|
152
152
|
|
153
|
-
Copyright link:https://www.alchemists.io[
|
153
|
+
Copyright 2020 link:https://www.alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].
|
154
154
|
|
155
155
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
|
156
156
|
compliance with the License. You may obtain a link:https://www.apache.org/licenses/LICENSE-2.0[copy]
|
data/README.adoc
CHANGED
@@ -8,6 +8,8 @@
|
|
8
8
|
|
9
9
|
[link=http://badge.fury.io/rb/git-lint]
|
10
10
|
image::https://badge.fury.io/rb/git-lint.svg[Gem Version]
|
11
|
+
[link=https://www.alchemists.io/projects/code_quality]
|
12
|
+
image::https://img.shields.io/badge/code_style-alchemists-brightgreen.svg[Alchemists Style Guide]
|
11
13
|
[link=https://circleci.com/gh/bkuhlmann/git-lint]
|
12
14
|
image::https://circleci.com/gh/bkuhlmann/git-lint.svg?style=svg[Circle CI Status]
|
13
15
|
|
@@ -45,8 +47,6 @@ image::https://www.alchemists.io/images/screencasts/git_lint/cover.svg[Screencas
|
|
45
47
|
|
46
48
|
== Setup
|
47
49
|
|
48
|
-
=== Production
|
49
|
-
|
50
50
|
To install, run:
|
51
51
|
|
52
52
|
[source,bash]
|
@@ -54,24 +54,6 @@ To install, run:
|
|
54
54
|
gem install git-lint
|
55
55
|
----
|
56
56
|
|
57
|
-
=== Development
|
58
|
-
|
59
|
-
To contribute, run:
|
60
|
-
|
61
|
-
[source,bash]
|
62
|
-
----
|
63
|
-
git clone https://github.com/bkuhlmann/git-lint.git
|
64
|
-
cd git-lint
|
65
|
-
bin/setup
|
66
|
-
----
|
67
|
-
|
68
|
-
You can also use the IRB console for direct access to all objects:
|
69
|
-
|
70
|
-
[source,bash]
|
71
|
-
----
|
72
|
-
bin/console
|
73
|
-
----
|
74
|
-
|
75
57
|
== Usage
|
76
58
|
|
77
59
|
=== Command Line Interface (CLI)
|
@@ -171,7 +153,7 @@ variables. The default configuration is:
|
|
171
153
|
:severity: :error
|
172
154
|
:includes: "\\-"
|
173
155
|
:commit_body_issue_tracker_link:
|
174
|
-
:enabled: true
|
156
|
+
:enabled: true
|
175
157
|
:severity: :error
|
176
158
|
:excludes:
|
177
159
|
- "(f|F)ix(es|ed)?\\s\\#\\d+"
|
@@ -403,6 +385,36 @@ from `master`.
|
|
403
385
|
Detection and configuration happens automatically by checking the `CIRCLECI` environment variable.
|
404
386
|
No additional setup required!
|
405
387
|
|
388
|
+
==== link:https://docs.github.com/en/free-pro-team@latest/actions[GitHub Actions]
|
389
|
+
|
390
|
+
Detection happens automatically by checking the `GITHUB_ACTIONS` environment variable as supplied by
|
391
|
+
the GitHub environment. The only configuration required is to add a `.github/workflows/git_lint.yml`
|
392
|
+
to your repository with the following contents:
|
393
|
+
|
394
|
+
[source,yaml]
|
395
|
+
----
|
396
|
+
name: Git Lint
|
397
|
+
|
398
|
+
on: pull_request
|
399
|
+
|
400
|
+
jobs:
|
401
|
+
run:
|
402
|
+
runs-on: ubuntu-latest
|
403
|
+
container:
|
404
|
+
image: ruby:latest
|
405
|
+
steps:
|
406
|
+
- uses: actions/checkout@v2
|
407
|
+
with:
|
408
|
+
fetch-depth: '0'
|
409
|
+
ref: ${{github.head_ref}}
|
410
|
+
- name: Install
|
411
|
+
run: gem install git-lint
|
412
|
+
- name: Analyze
|
413
|
+
run: git-lint --analyze
|
414
|
+
----
|
415
|
+
|
416
|
+
The above will ensure Git Lint runs as an additional check on each Pull Request.
|
417
|
+
|
406
418
|
==== link:https://www.netlify.com[Netlify CI]
|
407
419
|
|
408
420
|
Detection and configuration happens automatically by checking the `NETLIFY` environment variable. No
|
@@ -869,13 +881,30 @@ worth considering:
|
|
869
881
|
* Avoid using link:https://git-scm.com/book/en/v2/Git-Tools-Submodules[Git Submodules]. This
|
870
882
|
practice leads to complicated project cloning, deployments, maintenance, etc. Use separate
|
871
883
|
repositories to better organize and split out this work. Sophisticated package managers, like
|
872
|
-
link:https://bundler.io[Bundler]
|
873
|
-
|
884
|
+
link:https://bundler.io[Bundler], exist to manage these dependencies better than what multiple Git
|
885
|
+
Submodules can accomplish.
|
874
886
|
* Avoid using link:https://git-lfs.github.com[Git LFS] for tracking binary artifacts/resources.
|
875
887
|
These files are not meant for version control and lead to large repositories that are time
|
876
888
|
consuming to clone/deploy. Use storage managers, like link:https://aws.amazon.com/s3[Amazon S3]
|
877
889
|
for example, that are better suited for binary assets that don't change often.
|
878
890
|
|
891
|
+
=== Security
|
892
|
+
|
893
|
+
Ensure signed commits, pushes, and tags are enabled within your global Git Configuration to reduce
|
894
|
+
an
|
895
|
+
link:https://blog.gruntwork.io/how-to-spoof-any-user-on-github-and-what-to-do-to-prevent-it-e237e95b8deb[attack
|
896
|
+
vector]. Run the following commands to enable:
|
897
|
+
|
898
|
+
[source,bash]
|
899
|
+
----
|
900
|
+
git config --global commit.gpgSign true
|
901
|
+
git config --global push.gpgSign true
|
902
|
+
git config --global tag.gpgSign true
|
903
|
+
----
|
904
|
+
|
905
|
+
⚠️ GitHub, unfortunately, doesn't support signed pushes so you might need to leave that
|
906
|
+
configuration disabled.
|
907
|
+
|
879
908
|
=== Commits
|
880
909
|
|
881
910
|
* Use a commit subject that explains _what_ is being committed.
|
@@ -886,14 +915,19 @@ worth considering:
|
|
886
915
|
* Use small, atomic commits:
|
887
916
|
** Easier to review and provide feedback.
|
888
917
|
** Easier to review implementation and corresponding tests.
|
889
|
-
** Easier to document with detailed
|
890
|
-
request).
|
918
|
+
** Easier to document with detailed subjects (especially when grouped together in a pull request).
|
891
919
|
** Easier to reword, edit, squash, fix, or drop when interactively rebasing.
|
892
920
|
** Easier to combine together versus tearing apart a larger commit into smaller commits.
|
893
921
|
* Use logically ordered commits:
|
894
922
|
** Each commit should tell a story and be a logical building block to the next commit.
|
923
|
+
** Each commit should, ideally, be the implementation plus corresponding test. Avoid committing
|
924
|
+
changes that are a jumble of mixed ideas as they are hard to decipher and a huge insult not only
|
925
|
+
to the reviewer but your future self.
|
895
926
|
** Each commit, when reviewed in order, should be able to explain _how_ the feature or bug fix was
|
896
927
|
completed and implemented properly.
|
928
|
+
* Keep refactored code separate from behavioral changes. This makes the review process easier
|
929
|
+
because you don't have to sift through all the line and format changes to figure out what is new
|
930
|
+
or changed.
|
897
931
|
|
898
932
|
=== Branches
|
899
933
|
|
@@ -927,8 +961,11 @@ worth considering:
|
|
927
961
|
|
928
962
|
=== Code Reviews
|
929
963
|
|
930
|
-
There are
|
964
|
+
There are three main objectives each code review should achieve:
|
931
965
|
|
966
|
+
. *Joy* - The experience of working with you, receiving feedback, giving feedback, and demonstrating
|
967
|
+
a level of care influences others and encourages a collaborative environment that is fun to work
|
968
|
+
in. Use this time to build and reinforce trust amongst your fellow colleagues.
|
932
969
|
. *Quality*: Ensures changes are of highest quality that adhere to team standards while enhancing
|
933
970
|
the customer experience and not disrupting their workflow.
|
934
971
|
. *Education*: Provides a chance for everyone on the team to learn more about the architecture,
|
@@ -938,13 +975,22 @@ There are two objectives each code review should achieve:
|
|
938
975
|
In addition to the objectives above, the following guidelines are worth following:
|
939
976
|
|
940
977
|
* Keep code reviews short and easy to review:
|
978
|
+
** Review your own code first before submitting to others. By ensuring your are confident in the
|
979
|
+
overall implementation and the commits in terms of commit messages and implementation details,
|
980
|
+
you'll encourage higher quality feedback and show appreciation for the reviewer's time.
|
941
981
|
** Provide a high level overview that answers _why_ the code review is necessary.
|
942
|
-
** Provide a link to the issue
|
982
|
+
** Provide a link to the issue that prompted the code review (if any) and any additional details
|
983
|
+
worth highlighting to guide the reviewer through the process.
|
943
984
|
** Provide screenshots/screencasts if possible.
|
944
|
-
**
|
945
|
-
**
|
946
|
-
|
947
|
-
|
985
|
+
** Provide any ancillary notes or points of interest worth highlighting for the reviewer.
|
986
|
+
** Ensure commits within the code review are related to the purpose of the code review and avoid
|
987
|
+
mixing in changes that are ancillary to the primary objective of the code view. If you do have
|
988
|
+
changes outside of the scope of the current code review, open those changes up as a separate code
|
989
|
+
review instead.
|
990
|
+
** Prefer code reviews at about 300 lines in order to keep the quality of the code review and defect
|
991
|
+
detection high. This also shows you value the reviewers time and attention away from their own
|
992
|
+
work.
|
993
|
+
** Avoid working on a large issues without first getting feedback in order to not overwhelm/surprise
|
948
994
|
the maintainers. More discussion up front will help ensure your work has a faster chance of
|
949
995
|
acceptance.
|
950
996
|
* Review and rebase code reviews quickly:
|
@@ -984,9 +1030,14 @@ In addition to the objectives above, the following guidelines are worth followin
|
|
984
1030
|
always meant as a response to helpful feedback.
|
985
1031
|
** ✅ (`:white_check_mark:`) - Signifies code review approval. The author can
|
986
1032
|
rebase onto `master` and delete the feature branch at this point.
|
1033
|
+
* Use all feedback as a chance to learn, teach, strenghen the bond of trust between you and your
|
1034
|
+
fellow colleagues, and avoid being cut by
|
1035
|
+
link:https://fs.blog/2017/04/mental-model-hanlons-razor[Hanlon's Razor].
|
1036
|
+
* Use automation to ensure code reviews are consistent, of high quality, and swift to resolve. Each
|
1037
|
+
code review can be an opportunity to identify and automate the process further.
|
987
1038
|
* Use face-to-face communication if a code review's written discussion gets lengthy/noisy.
|
988
|
-
* Create
|
989
|
-
delaying code review acceptance. Return to the code review once
|
1039
|
+
* Create follow-up actions if additional features are discovered during a code review to avoid
|
1040
|
+
delaying code review acceptance. Return to the code review once the new actions have been logged.
|
990
1041
|
* The author, not the reviewer, should rebase the feature branch onto `master` upon approval.
|
991
1042
|
* Avoid reviewing your own code review before rebasing onto `master`. Have another pair of eyes
|
992
1043
|
review your code first.
|
@@ -1017,9 +1068,9 @@ do this, follow these steps:
|
|
1017
1068
|
. Check _Require review from Code Owners_.
|
1018
1069
|
. Check _Require status checks to pass before merging_.
|
1019
1070
|
. Check _Require branches to be up to date before merging_.
|
1071
|
+
. Check _Require signed commits_.
|
1020
1072
|
. Check _Require linear history_ (pairs well with the merge options mentioned above).
|
1021
1073
|
. Check _Include administrators_.
|
1022
|
-
. Uncheck _Require signed commits_ (only necessary for tags).
|
1023
1074
|
. Uncheck _Allow force pushes_.
|
1024
1075
|
. Uncheck _Allow deletions_.
|
1025
1076
|
|
@@ -1029,6 +1080,24 @@ image::https://www.alchemists.io/images/projects/git-lint/screenshots/github-set
|
|
1029
1080
|
|
1030
1081
|
Applying the above changes will help maintain a clean Git history.
|
1031
1082
|
|
1083
|
+
== Development
|
1084
|
+
|
1085
|
+
To contribute, run:
|
1086
|
+
|
1087
|
+
[source,bash]
|
1088
|
+
----
|
1089
|
+
git clone https://github.com/bkuhlmann/git-lint.git
|
1090
|
+
cd git-lint
|
1091
|
+
bin/setup
|
1092
|
+
----
|
1093
|
+
|
1094
|
+
You can also use the IRB console for direct access to all objects:
|
1095
|
+
|
1096
|
+
[source,bash]
|
1097
|
+
----
|
1098
|
+
bin/console
|
1099
|
+
----
|
1100
|
+
|
1032
1101
|
== Tests
|
1033
1102
|
|
1034
1103
|
To test, run:
|
data/lib/git/lint.rb
CHANGED
@@ -15,6 +15,7 @@ require "git/lint/commits/saved"
|
|
15
15
|
require "git/lint/commits/unsaved"
|
16
16
|
require "git/lint/branches/environments/local"
|
17
17
|
require "git/lint/branches/environments/circle_ci"
|
18
|
+
require "git/lint/branches/environments/git_hub_action"
|
18
19
|
require "git/lint/branches/environments/netlify_ci"
|
19
20
|
require "git/lint/branches/environments/travis_ci"
|
20
21
|
require "git/lint/branches/feature"
|
@@ -32,7 +32,11 @@ module Git
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def invalid_line? line
|
35
|
-
line.match?(/\A\s*#{
|
35
|
+
line.match?(/\A\s*#{pattern}(?!(#{pattern}|\s)).+\Z/)
|
36
|
+
end
|
37
|
+
|
38
|
+
def pattern
|
39
|
+
Regexp.union filter_list.to_regexp
|
36
40
|
end
|
37
41
|
end
|
38
42
|
end
|
@@ -14,9 +14,10 @@ module Git
|
|
14
14
|
def valid?
|
15
15
|
raw_body = commit.raw_body
|
16
16
|
subject, body = raw_body.split "\n", 2
|
17
|
+
|
17
18
|
return true if !String(subject).empty? && String(body).strip.empty?
|
18
19
|
|
19
|
-
raw_body.match?(/\A
|
20
|
+
raw_body.match?(/\A.+(\n\n|\#).+/m)
|
20
21
|
end
|
21
22
|
|
22
23
|
def issue
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Git
|
4
|
+
module Lint
|
5
|
+
module Branches
|
6
|
+
module Environments
|
7
|
+
# Provides GitHub Action build environment feature branch information.
|
8
|
+
class GitHubAction
|
9
|
+
def initialize repo: Git::Kit::Repo.new
|
10
|
+
@repo = repo
|
11
|
+
end
|
12
|
+
|
13
|
+
def name
|
14
|
+
"origin/#{repo.branch_name}"
|
15
|
+
end
|
16
|
+
|
17
|
+
def shas
|
18
|
+
repo.shas start: "origin/master", finish: name
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
attr_reader :repo
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -29,6 +29,7 @@ module Git
|
|
29
29
|
|
30
30
|
def load_environment
|
31
31
|
if key? "CIRCLECI" then Environments::CircleCI.new
|
32
|
+
elsif key? "GITHUB_ACTIONS" then Environments::GitHubAction.new
|
32
33
|
elsif key? "NETLIFY" then Environments::NetlifyCI.new environment: current_environment
|
33
34
|
elsif key? "TRAVIS" then Environments::TravisCI.new environment: current_environment
|
34
35
|
else Environments::Local.new
|
data/lib/git/lint/identity.rb
CHANGED
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.0
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
@@ -28,7 +28,7 @@ cert_chain:
|
|
28
28
|
2XV8FRa7/JimI07sPLC13eLY3xd/aYTi85Z782KIA4j0G8XEEWAX0ouBhlXPocZv
|
29
29
|
QWc=
|
30
30
|
-----END CERTIFICATE-----
|
31
|
-
date: 2020-
|
31
|
+
date: 2020-12-13 00:00:00.000000000 Z
|
32
32
|
dependencies:
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: pastel
|
@@ -50,28 +50,28 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '7.
|
53
|
+
version: '7.16'
|
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.
|
60
|
+
version: '7.16'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: runcom
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '6.
|
67
|
+
version: '6.4'
|
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.
|
74
|
+
version: '6.4'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: thor
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,188 +86,6 @@ dependencies:
|
|
86
86
|
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
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.6'
|
96
|
-
type: :development
|
97
|
-
prerelease: false
|
98
|
-
version_requirements: !ruby/object:Gem::Requirement
|
99
|
-
requirements:
|
100
|
-
- - "~>"
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: '0.6'
|
103
|
-
- !ruby/object:Gem::Dependency
|
104
|
-
name: gemsmith
|
105
|
-
requirement: !ruby/object:Gem::Requirement
|
106
|
-
requirements:
|
107
|
-
- - "~>"
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '14.2'
|
110
|
-
type: :development
|
111
|
-
prerelease: false
|
112
|
-
version_requirements: !ruby/object:Gem::Requirement
|
113
|
-
requirements:
|
114
|
-
- - "~>"
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: '14.2'
|
117
|
-
- !ruby/object:Gem::Dependency
|
118
|
-
name: guard-rspec
|
119
|
-
requirement: !ruby/object:Gem::Requirement
|
120
|
-
requirements:
|
121
|
-
- - "~>"
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: '4.7'
|
124
|
-
type: :development
|
125
|
-
prerelease: false
|
126
|
-
version_requirements: !ruby/object:Gem::Requirement
|
127
|
-
requirements:
|
128
|
-
- - "~>"
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version: '4.7'
|
131
|
-
- !ruby/object:Gem::Dependency
|
132
|
-
name: pry
|
133
|
-
requirement: !ruby/object:Gem::Requirement
|
134
|
-
requirements:
|
135
|
-
- - "~>"
|
136
|
-
- !ruby/object:Gem::Version
|
137
|
-
version: '0.13'
|
138
|
-
type: :development
|
139
|
-
prerelease: false
|
140
|
-
version_requirements: !ruby/object:Gem::Requirement
|
141
|
-
requirements:
|
142
|
-
- - "~>"
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version: '0.13'
|
145
|
-
- !ruby/object:Gem::Dependency
|
146
|
-
name: pry-byebug
|
147
|
-
requirement: !ruby/object:Gem::Requirement
|
148
|
-
requirements:
|
149
|
-
- - "~>"
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version: '3.9'
|
152
|
-
type: :development
|
153
|
-
prerelease: false
|
154
|
-
version_requirements: !ruby/object:Gem::Requirement
|
155
|
-
requirements:
|
156
|
-
- - "~>"
|
157
|
-
- !ruby/object:Gem::Version
|
158
|
-
version: '3.9'
|
159
|
-
- !ruby/object:Gem::Dependency
|
160
|
-
name: rake
|
161
|
-
requirement: !ruby/object:Gem::Requirement
|
162
|
-
requirements:
|
163
|
-
- - "~>"
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
version: '13.0'
|
166
|
-
type: :development
|
167
|
-
prerelease: false
|
168
|
-
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
requirements:
|
170
|
-
- - "~>"
|
171
|
-
- !ruby/object:Gem::Version
|
172
|
-
version: '13.0'
|
173
|
-
- !ruby/object:Gem::Dependency
|
174
|
-
name: reek
|
175
|
-
requirement: !ruby/object:Gem::Requirement
|
176
|
-
requirements:
|
177
|
-
- - "~>"
|
178
|
-
- !ruby/object:Gem::Version
|
179
|
-
version: '6.0'
|
180
|
-
type: :development
|
181
|
-
prerelease: false
|
182
|
-
version_requirements: !ruby/object:Gem::Requirement
|
183
|
-
requirements:
|
184
|
-
- - "~>"
|
185
|
-
- !ruby/object:Gem::Version
|
186
|
-
version: '6.0'
|
187
|
-
- !ruby/object:Gem::Dependency
|
188
|
-
name: rspec
|
189
|
-
requirement: !ruby/object:Gem::Requirement
|
190
|
-
requirements:
|
191
|
-
- - "~>"
|
192
|
-
- !ruby/object:Gem::Version
|
193
|
-
version: '3.9'
|
194
|
-
type: :development
|
195
|
-
prerelease: false
|
196
|
-
version_requirements: !ruby/object:Gem::Requirement
|
197
|
-
requirements:
|
198
|
-
- - "~>"
|
199
|
-
- !ruby/object:Gem::Version
|
200
|
-
version: '3.9'
|
201
|
-
- !ruby/object:Gem::Dependency
|
202
|
-
name: rubocop
|
203
|
-
requirement: !ruby/object:Gem::Requirement
|
204
|
-
requirements:
|
205
|
-
- - "~>"
|
206
|
-
- !ruby/object:Gem::Version
|
207
|
-
version: '0.83'
|
208
|
-
type: :development
|
209
|
-
prerelease: false
|
210
|
-
version_requirements: !ruby/object:Gem::Requirement
|
211
|
-
requirements:
|
212
|
-
- - "~>"
|
213
|
-
- !ruby/object:Gem::Version
|
214
|
-
version: '0.83'
|
215
|
-
- !ruby/object:Gem::Dependency
|
216
|
-
name: rubocop-performance
|
217
|
-
requirement: !ruby/object:Gem::Requirement
|
218
|
-
requirements:
|
219
|
-
- - "~>"
|
220
|
-
- !ruby/object:Gem::Version
|
221
|
-
version: '1.5'
|
222
|
-
type: :development
|
223
|
-
prerelease: false
|
224
|
-
version_requirements: !ruby/object:Gem::Requirement
|
225
|
-
requirements:
|
226
|
-
- - "~>"
|
227
|
-
- !ruby/object:Gem::Version
|
228
|
-
version: '1.5'
|
229
|
-
- !ruby/object:Gem::Dependency
|
230
|
-
name: rubocop-rake
|
231
|
-
requirement: !ruby/object:Gem::Requirement
|
232
|
-
requirements:
|
233
|
-
- - "~>"
|
234
|
-
- !ruby/object:Gem::Version
|
235
|
-
version: '0.5'
|
236
|
-
type: :development
|
237
|
-
prerelease: false
|
238
|
-
version_requirements: !ruby/object:Gem::Requirement
|
239
|
-
requirements:
|
240
|
-
- - "~>"
|
241
|
-
- !ruby/object:Gem::Version
|
242
|
-
version: '0.5'
|
243
|
-
- !ruby/object:Gem::Dependency
|
244
|
-
name: rubocop-rspec
|
245
|
-
requirement: !ruby/object:Gem::Requirement
|
246
|
-
requirements:
|
247
|
-
- - "~>"
|
248
|
-
- !ruby/object:Gem::Version
|
249
|
-
version: '1.39'
|
250
|
-
type: :development
|
251
|
-
prerelease: false
|
252
|
-
version_requirements: !ruby/object:Gem::Requirement
|
253
|
-
requirements:
|
254
|
-
- - "~>"
|
255
|
-
- !ruby/object:Gem::Version
|
256
|
-
version: '1.39'
|
257
|
-
- !ruby/object:Gem::Dependency
|
258
|
-
name: simplecov
|
259
|
-
requirement: !ruby/object:Gem::Requirement
|
260
|
-
requirements:
|
261
|
-
- - "~>"
|
262
|
-
- !ruby/object:Gem::Version
|
263
|
-
version: '0.18'
|
264
|
-
type: :development
|
265
|
-
prerelease: false
|
266
|
-
version_requirements: !ruby/object:Gem::Requirement
|
267
|
-
requirements:
|
268
|
-
- - "~>"
|
269
|
-
- !ruby/object:Gem::Version
|
270
|
-
version: '0.18'
|
271
89
|
description:
|
272
90
|
email:
|
273
91
|
- brooke@alchemists.io
|
@@ -306,6 +124,7 @@ files:
|
|
306
124
|
- lib/git/lint/analyzers/commit_trailer_collaborator_key.rb
|
307
125
|
- lib/git/lint/analyzers/commit_trailer_collaborator_name.rb
|
308
126
|
- lib/git/lint/branches/environments/circle_ci.rb
|
127
|
+
- lib/git/lint/branches/environments/git_hub_action.rb
|
309
128
|
- lib/git/lint/branches/environments/local.rb
|
310
129
|
- lib/git/lint/branches/environments/netlify_ci.rb
|
311
130
|
- lib/git/lint/branches/environments/travis_ci.rb
|
@@ -356,7 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
356
175
|
- !ruby/object:Gem::Version
|
357
176
|
version: '0'
|
358
177
|
requirements: []
|
359
|
-
rubygems_version: 3.
|
178
|
+
rubygems_version: 3.2.0
|
360
179
|
signing_key:
|
361
180
|
specification_version: 4
|
362
181
|
summary: A command line interface for linting Git commits.
|
metadata.gz.sig
CHANGED
Binary file
|