Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Git commit hook - How to use the commit-msg hook to check for string in message?

Tags:

git

bash

perl

hook

I need to make a commit-msg hook to check if the commit message contains "app.asana" in any part of this. I searched some references and documentation and I know I need to use the commit-msg for this. I have to make this using Perl or Bash.

Does anybody has a clue about this or somewhere I can look more examples to learn how to do it??

Thank you.

like image 578
lol Avatar asked Oct 11 '25 21:10

lol


1 Answers

I found an answer to my question. In case it may help somebody...

I just created a commit-msg file in .git/hooks containing

#!/bin/sh

test -n "$(grep 'app.asana.com/' ${1})" || {
        echo >&2 "ERROR: Commit message is missing Asana's task link.\n\nPlease append the Asana's task link relative to this commit into the commit message."
        exit 1
}

Each user needs to have a commit-msg file inside .git/hooks. Then, as a solution, I added commit-msg to the project folder (so I can pull this) with another file called commit-msg-hook.sh containing:

#!/bin/sh

cp commit-msg .git/hooks/commit-msg
chmod +x .git/hooks/commit-msg
echo "\nThe commit-msg hook was added to git hooks"

I welcome any advice to improve what I've done. Thanks.

like image 143
lol Avatar answered Oct 14 '25 16:10

lol