Last active
October 15, 2019 06:47
-
-
Save swissonid/3776500bf4235a89e1f986c73b02dca7 to your computer and use it in GitHub Desktop.
prepare-commit-msg
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# This hook is based on https://medium.com/@nicklee1/prepending-your-git-commit-messages-with-user-story-ids-3bfea00eab5a | |
## HOW TO INSTALL | |
# GLOBAL FOR ALL FUTURE PROJECT | |
# git config --global init.templatedir '~/.git-templates' | |
# mkdir -p ~/.git-templates/hooks | |
# touch ~/.git-templates/hooks/prepare-commit-msg | |
# Copy this text (the whole file) into the created file (prepare-commit-msg) | |
# chmod a+x ~/.git-templates/hooks/prepare-commit-msg | |
# ADD HOOK TO AN EXSTING REPO | |
# git init | |
# OR | |
# Go to your root folder of your project | |
# mkdir -p .git/hooks/ | |
# cp ~/.git-templates/hooks/prepare-commit-msg ./.git/hooks/. | |
# Include any branches for which you wish to disable this script | |
if [ -z "$BRANCHES_TO_SKIP" ]; then | |
BRANCHES_TO_SKIP=(master develop) | |
fi | |
# Get the current branch name and check if it is excluded | |
BRANCH_NAME=$(git symbolic-ref --short HEAD) | |
BRANCH_EXCLUDED=$(printf "%s\n" "${BRANCHES_TO_SKIP[@]}" | grep -c "^$BRANCH_NAME$") | |
# Trim it down to get the parts we're interested in | |
TRIMMED=$(echo $BRANCH_NAME | sed \ | |
-e 's:^\([^-]*-[^-]*\)-.*:\1:' \ | |
-e 's/^.*\///' \ | |
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ | |
-e 's/$/ |/') | |
# If it isn't excluded, preprend the trimmed branch identifier to the given message | |
if [ -n "$BRANCH_NAME" ] && ! [[ $BRANCH_EXCLUDED -eq 1 ]]; then | |
sed -i.bak -e "1s/^/$TRIMMED /" $1 | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment