diff options
author | Georg Pfuetzenreuter | 2023-02-19 19:48:59 +0100 |
---|---|---|
committer | Georg Pfuetzenreuter | 2023-02-19 20:43:09 +0100 |
commit | d082729a664b479ca020e81596db06ae34fd00d4 (patch) | |
tree | a706ca4fe54bd31e5cea2cebc1714322f5dbefcc | |
parent | 51da14de69ac98ddd49cae393a76d64bded041b0 (diff) | |
download | salt-d082729a664b479ca020e81596db06ae34fd00d4.tar.gz salt-d082729a664b479ca020e81596db06ae34fd00d4.tar.bz2 salt-d082729a664b479ca020e81596db06ae34fd00d4.zip |
Add commit linting
- add gommit configuration
- add wrapper script
Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
-rw-r--r-- | .gommit.toml | 23 | ||||
-rwxr-xr-x | bin/lint-commits.pl | 39 |
2 files changed, 62 insertions, 0 deletions
diff --git a/.gommit.toml b/.gommit.toml new file mode 100644 index 0000000..eaffd69 --- /dev/null +++ b/.gommit.toml @@ -0,0 +1,23 @@ +[config] +exclude-merge-commits=true +check-summary-length=true +summary-length=50 + +[matchers] +all='^(?:(?:Add|Remove|Update|Enable|Disable) |(?:role\.\w+|profile\.\w+): )[\w ]+\n(?:(?:\n\- .*)+\n)?(?:\nSigned-off-by: \w+ \w+ <.*@.*>)' + +[examples] +summary_variant_one=""" +[Add|Remove|Update|Enable|Disable] this and that +""" + +summary_variant_two=""" +[role.$role|profile.$profile]: this and that +""" + +body_message=""" +- an optional body line +- another optional body line + +Signed-off-by: Max Mandatory <required@example.com> +""" diff --git a/bin/lint-commits.pl b/bin/lint-commits.pl new file mode 100755 index 0000000..0b17f94 --- /dev/null +++ b/bin/lint-commits.pl @@ -0,0 +1,39 @@ +#!/usr/bin/perl +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +use v5.26; + +my ($branch_main) = @ARGV; + +if(!$branch_main){ + $branch_main = "master" +} + +`git ls-remote origin $branch_main` =~ /([a-f0-9]{40})/; + +my $refHead = `git rev-parse HEAD`; +my $refTail = $1; + +chomp($refHead); +chomp($refTail); + +if ($refHead eq $refTail) { + exit 0; +} + +system "gommit check range $refTail $refHead"; + +if ($? > 0) { + exit 1; +} |