git-lint 2.1.0 → 2.2.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 +36 -20
- data/lib/git/lint/branches/environments/circle_ci.rb +1 -1
- data/lib/git/lint/branches/environments/git_hub_action.rb +1 -1
- data/lib/git/lint/branches/environments/local.rb +1 -1
- data/lib/git/lint/branches/environments/netlify_ci.rb +1 -1
- data/lib/git/lint/branches/environments/travis_ci.rb +2 -2
- data/lib/git/lint/identity.rb +1 -1
- metadata +15 -15
- 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: 1a0ccd4d14bc5a75b14ae5a825f5eec453a560bc3e6df2bc959bbcb90f626794
|
4
|
+
data.tar.gz: 5f64925793493c9cde59a4828666137ba6a5203f664d5b97ce994552b38fcb42
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b295196574a134f2ae5a3989c71d7023998eaf96476055a8c511a3f5d684fbaf1d9456fe887389042d4f8a88fb0d7bce0ea8e1a5663c490c1cf7756b9d6384c8
|
7
|
+
data.tar.gz: 542818d4e2dced990b4231b53160e6c59272c1db908e309a10566210be26eeddb6213ec1f6581c75b078f6d8581e0b4f85827efe03d0f93ce9a216a8133c94a8
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/README.adoc
CHANGED
@@ -14,7 +14,7 @@ image::https://img.shields.io/badge/code_style-alchemists-brightgreen.svg[Alchem
|
|
14
14
|
image::https://circleci.com/gh/bkuhlmann/git-lint.svg?style=svg[Circle CI Status]
|
15
15
|
|
16
16
|
[link=https://travis-ci.org/bkuhlmann/git-lint]
|
17
|
-
image::https://travis-ci.org/bkuhlmann/git-lint.svg?branch=
|
17
|
+
image::https://travis-ci.org/bkuhlmann/git-lint.svg?branch=main[Travis CI Status]
|
18
18
|
[link=https://app.netlify.com/sites/git-lint/deploys]
|
19
19
|
image::https://api.netlify.com/api/v1/badges/7e23b422-3412-4e7f-b654-65c0417a0b1f/deploy-status[Netlify CI Status]
|
20
20
|
|
@@ -27,9 +27,10 @@ toc::[]
|
|
27
27
|
|
28
28
|
* Enforces a {git_rebase_workflow_link}.
|
29
29
|
* Enforces a clean and consistent Git commit history.
|
30
|
+
* Supports Git default branch configuration.
|
30
31
|
* Provides a customizable suite of analyzers.
|
31
32
|
* Provides Git Hook support for local use.
|
32
|
-
* Provides Continuous Integration (CI)
|
33
|
+
* Provides Continuous Integration (CI) support.
|
33
34
|
|
34
35
|
== Screencasts
|
35
36
|
|
@@ -66,9 +67,9 @@ git-lint -v, [--version] # Show gem version.
|
|
66
67
|
To check if your Git commit history is clean, run: `git-lint --analyze`. It will exit with a failure
|
67
68
|
if at least one issue with error severity is detected.
|
68
69
|
|
69
|
-
This gem does not check commits on `
|
70
|
-
to rewrite or fix commits on `
|
71
|
-
detects all commits made since
|
70
|
+
This gem does not check commits on your default branch (i.e. `main`). This is intentional as you
|
71
|
+
would, generally, not want to rewrite or fix commits on the `main` branch. This gem is best used on
|
72
|
+
feature branches as it automatically detects all commits made since creation of the feature branch.
|
72
73
|
|
73
74
|
Here is an example workflow, using gem defaults with issues detected:
|
74
75
|
|
@@ -110,6 +111,21 @@ Now, when running `bundle exec rake -T`, you'll see `git_lint` included in the l
|
|
110
111
|
|
111
112
|
If you need a concrete example, check out the link:Rakefile[Rakefile] of this project for details.
|
112
113
|
|
114
|
+
=== Default Branch
|
115
|
+
|
116
|
+
Your default branch configuration is respected no matter if it is set globally or locally. If the
|
117
|
+
default branch is _not set_ then Git Lint will fall back to `master` for backwards compatibility.
|
118
|
+
When the next major version is released, the default branch fallback will change from `master` to
|
119
|
+
`main`. You can set your default branch at any time by running the following from the command line:
|
120
|
+
|
121
|
+
[source,bash]
|
122
|
+
----
|
123
|
+
git config --add init.defaultBranch main
|
124
|
+
----
|
125
|
+
|
126
|
+
💡 When setting your default branch, ensure you use a consistent Git configuration across all of
|
127
|
+
your environments.
|
128
|
+
|
113
129
|
=== Configuration
|
114
130
|
|
115
131
|
This gem can be configured via a global configuration:
|
@@ -288,7 +304,7 @@ maintenance costs for you. To configure global Git Hooks, add the following to y
|
|
288
304
|
....
|
289
305
|
|
290
306
|
Then you can customize Git Hooks for all of your projects.
|
291
|
-
link:https://github.com/bkuhlmann/dotfiles/tree/
|
307
|
+
link:https://github.com/bkuhlmann/dotfiles/tree/main/home_files/.config/git/hooks[Check out these
|
292
308
|
examples].
|
293
309
|
|
294
310
|
If a global configuration is not desired, you can add Git Hooks at a per project level by editing
|
@@ -373,7 +389,7 @@ have a build server that is not listed, please log an issue or provide an implem
|
|
373
389
|
support.
|
374
390
|
|
375
391
|
Calculation of commits is done by reviewing all commits made on the feature branch since branching
|
376
|
-
from `
|
392
|
+
from `main`.
|
377
393
|
|
378
394
|
==== link:https://circleci.com[Circle CI]
|
379
395
|
|
@@ -865,7 +881,7 @@ worth considering:
|
|
865
881
|
blindly combine multiple commit messages without editing them into a single, coherent message._
|
866
882
|
* Use `git rebase --interactive` when cleaning up commit history, order, messages, etc. This should
|
867
883
|
be done prior to submitting a code review or when code review feedback has been addressed and
|
868
|
-
you are ready to rebase onto `
|
884
|
+
you are ready to rebase onto `main`.
|
869
885
|
* Use `git push --force-with-lease` instead of `git push --force` when pushing changes after an
|
870
886
|
interactive rebasing session.
|
871
887
|
* Avoid checking in development-specific configuration files (add to `.gitignore` instead).
|
@@ -927,7 +943,7 @@ configuration disabled.
|
|
927
943
|
=== Branches
|
928
944
|
|
929
945
|
* Use feature branches for new work.
|
930
|
-
* Maintain branches by rebasing upon `
|
946
|
+
* Maintain branches by rebasing upon `main` on a regular basis.
|
931
947
|
|
932
948
|
=== Tags
|
933
949
|
|
@@ -949,7 +965,7 @@ configuration disabled.
|
|
949
965
|
* Use hooks globally rather than locally per project. Doing this applies the same functionality
|
950
966
|
across all projects automatically, reduces maintenance per project, and provides consistency
|
951
967
|
across all projects. This can best be managed via your
|
952
|
-
link:https://github.com/bkuhlmann/dotfiles/tree/
|
968
|
+
link:https://github.com/bkuhlmann/dotfiles/tree/main/home_files/.config/git/hooks[Dotfiles].
|
953
969
|
* Avoid forcing global or local project hooks as a team-wide mandate. Hooks are a personal tool much
|
954
970
|
like editors or other tools one choose to do their work. For team consistency, use a continuous
|
955
971
|
integration build server instead.
|
@@ -1016,15 +1032,15 @@ In addition to the objectives above, the following guidelines are worth followin
|
|
1016
1032
|
implementation. This is _blocking_ and requires immediate correction. The reviewer should
|
1017
1033
|
provide a suggested solution and/or links to patterns, articles, etc. that might help the author
|
1018
1034
|
fix the implementation. Pairing is encouraged if feedback is vast and/or complex.
|
1019
|
-
**
|
1020
|
-
_blocking_ feedback and must be addressed immediately.
|
1035
|
+
** 🔓 (`:unlock:`) - Signifies a security violation that would damage us and/or our customers. This
|
1036
|
+
is _blocking_ feedback and must be addressed immediately.
|
1021
1037
|
** 💡 (`:bulb:`) - Indicates a helpful tip or trick for improving the code. This can be
|
1022
1038
|
_blocking_ or _non-blocking_ feedback and is left up to the author to decide. Generally, it is a
|
1023
1039
|
good idea to address and resolve the feedback.
|
1024
1040
|
** 🙇 (`:bow:`) - Indicates thankfulness of the feedback received. This is _non-blocking_ and
|
1025
1041
|
always meant as a response to helpful feedback.
|
1026
1042
|
** ✅ (`:white_check_mark:`) - Signifies code review approval. The author can
|
1027
|
-
rebase onto `
|
1043
|
+
rebase onto `main` and delete the feature branch at this point.
|
1028
1044
|
* Use all feedback as a chance to learn, teach, strenghen the bond of trust between you and your
|
1029
1045
|
fellow colleagues, and avoid being cut by
|
1030
1046
|
link:https://fs.blog/2017/04/mental-model-hanlons-razor[Hanlon's Razor].
|
@@ -1033,13 +1049,13 @@ In addition to the objectives above, the following guidelines are worth followin
|
|
1033
1049
|
* Use face-to-face communication if a code review's written discussion gets lengthy/noisy.
|
1034
1050
|
* Create follow-up actions if additional features are discovered during a code review to avoid
|
1035
1051
|
delaying code review acceptance. Return to the code review once the new actions have been logged.
|
1036
|
-
* The author, not the reviewer, should rebase the feature branch onto `
|
1037
|
-
* Avoid reviewing your own code review before rebasing onto `
|
1052
|
+
* The author, not the reviewer, should rebase the feature branch onto `main` upon approval.
|
1053
|
+
* Avoid reviewing your own code review before rebasing onto `main`. Have another pair of eyes
|
1038
1054
|
review your code first.
|
1039
|
-
* Ensure the following criteria is met before rebasing your feature branch to `
|
1055
|
+
* Ensure the following criteria is met before rebasing your feature branch to `main`:
|
1040
1056
|
** Ensure all `fixup!` and `squash!` commits are interactively rebased. _Avoid rebasing these onto
|
1041
|
-
the `
|
1042
|
-
** Ensure your feature branch is rebased upon `
|
1057
|
+
the `main` branch!_
|
1058
|
+
** Ensure your feature branch is rebased upon `main`.
|
1043
1059
|
** Ensure all tests and code quality checks are passing.
|
1044
1060
|
** Ensure the feature branch is deleted after being successfully rebased.
|
1045
1061
|
|
@@ -1051,12 +1067,12 @@ and editing your merge options for code reviews as follows:
|
|
1051
1067
|
|
1052
1068
|
image::https://www.alchemists.io/images/projects/git-lint/screenshots/github-settings-options.png[GitHub Merge Options]
|
1053
1069
|
|
1054
|
-
In addition to the above, you'll want to add _branch_ protection rules for your `
|
1070
|
+
In addition to the above, you'll want to add _branch_ protection rules for your `main` branch. To
|
1055
1071
|
do this, follow these steps:
|
1056
1072
|
|
1057
1073
|
. Visit your branch settings (i.e. `https://github.com/<username>/<project>/settings/branches`).
|
1058
1074
|
. Click the _Add rule_ button.
|
1059
|
-
. For _branch name pattern_, enter: `
|
1075
|
+
. For _branch name pattern_, enter: `main`.
|
1060
1076
|
. Check _Require pull request reviews before merging_.
|
1061
1077
|
. Set _Required approving reviews_ to `2` as a minimum.
|
1062
1078
|
. Check _Dismiss stale pull request approvals when new commits are pushed_.
|
@@ -21,7 +21,7 @@ module Git
|
|
21
21
|
def commits
|
22
22
|
shell.capture3 "git remote add -f origin #{environment["REPOSITORY_URL"]}"
|
23
23
|
shell.capture3 "git fetch origin #{name}:#{name}"
|
24
|
-
repository.commits "origin
|
24
|
+
repository.commits "origin/#{repository.branch_default}..origin/#{name}"
|
25
25
|
end
|
26
26
|
|
27
27
|
private
|
@@ -20,7 +20,7 @@ module Git
|
|
20
20
|
|
21
21
|
def commits
|
22
22
|
prepare_project
|
23
|
-
repository.commits "origin
|
23
|
+
repository.commits "origin/#{repository.branch_default}..#{name}"
|
24
24
|
end
|
25
25
|
|
26
26
|
private
|
@@ -35,7 +35,7 @@ module Git
|
|
35
35
|
shell.capture3 "git fetch original_branch #{name}:#{name}"
|
36
36
|
end
|
37
37
|
|
38
|
-
shell.capture3 "git remote set-branches --add origin
|
38
|
+
shell.capture3 "git remote set-branches --add origin #{repository.branch_default}"
|
39
39
|
shell.capture3 "git fetch"
|
40
40
|
end
|
41
41
|
|
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: 2.
|
4
|
+
version: 2.2.0
|
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/
|
14
|
-
|
15
|
-
|
13
|
+
MIIC/jCCAeagAwIBAgIBBDANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpicm9v
|
14
|
+
a2UvREM9YWxjaGVtaXN0cy9EQz1pbzAeFw0yMTAzMTkxMjQ4MDZaFw0yMjAzMTkx
|
15
|
+
MjQ4MDZaMCUxIzAhBgNVBAMMGmJyb29rZS9EQz1hbGNoZW1pc3RzL0RDPWlvMIIB
|
16
16
|
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6l1qpXTiomH1RfMRloyw7MiE
|
17
17
|
xyVx/x8Yc3EupdH7uhNaTXQGyORN6aOY//1QXXMHIZ9tW74nZLhesWMSUMYy0XhB
|
18
18
|
brs+KkurHnc9FnEJAbG7ebGvl/ncqZt72nQvaxpDxvuCBHgJAz+8i5wl6FhLw+oT
|
@@ -20,15 +20,15 @@ cert_chain:
|
|
20
20
|
D5vkU0YlAm1r98BymuJlcQ1qdkVEI1d48ph4kcS0S0nv1RiuyVb6TCAR3Nu3VaVq
|
21
21
|
3fPzZKJLZBx67UvXdbdicWPiUR75elI4PXpLIic3xytaF52ZJYyKZCNZJhNwfQID
|
22
22
|
AQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU0nzow9vc
|
23
|
-
2CdikiiE3fJhP/
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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: 2021-
|
31
|
+
date: 2021-04-04 00:00:00.000000000 Z
|
32
32
|
dependencies:
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: git_plus
|
@@ -36,14 +36,14 @@ dependencies:
|
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '0.
|
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.
|
46
|
+
version: '0.4'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: pastel
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -186,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
186
|
- !ruby/object:Gem::Version
|
187
187
|
version: '0'
|
188
188
|
requirements: []
|
189
|
-
rubygems_version: 3.2.
|
189
|
+
rubygems_version: 3.2.15
|
190
190
|
signing_key:
|
191
191
|
specification_version: 4
|
192
192
|
summary: A command line interface for linting Git commits.
|
metadata.gz.sig
CHANGED
Binary file
|