Skip to content

Commit 58d0d42

Browse files
committed
ci: Add hooks commit-msg
1 parent b2bbbd9 commit 58d0d42

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

.github/hooks/commit-msg

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/bin/sh
2+
#
3+
# An example hook script to check the commit log message.
4+
# Called by "git commit" with one argument, the name of the file
5+
# that has the commit message. The hook should exit with non-zero
6+
# status after issuing an appropriate message if it wants to stop the
7+
# commit. The hook is allowed to edit the commit message file.
8+
#
9+
# To enable this hook, rename this file to "commit-msg".
10+
11+
# Uncomment the below to add a Signed-off-by line to the message.
12+
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
13+
# hook is more suited to it.
14+
#
15+
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
16+
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
17+
18+
# This example catches duplicate Signed-off-by lines.
19+
20+
test "" = "$(grep '^Signed-off-by: ' "$1" |
21+
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
22+
echo >&2 Duplicate Signed-off-by lines.
23+
exit 1
24+
}
25+
if ! head -1 "$1" | grep -qE "^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test|merge)(\(.+?\))?(\!)?: .{3,}$"; then
26+
echo "Aborting commit. Your commit message is invalid. See some examples below:" >&2
27+
echo "feat(logging): added logs for failed signups" >&2
28+
echo "fix(homepage): fixed image gallery" >&2
29+
echo "test(homepage): updated tests" >&2
30+
echo "docs(readme): added new logging table information" >&2
31+
echo "For more information check https://www.conventionalcommits.org/en/v1.0.0/ for more details" >&2
32+
exit 1
33+
fi
34+
if ! head -1 "$1" | grep -qE "^.{9,85}$"; then
35+
echo "Aborting commit. Your commit message is too long. Max length is 89 characters" >&2
36+
exit 1
37+
fi

0 commit comments

Comments
 (0)