Created
May 6, 2020 15:11
-
-
Save woneill/4cc8efa5adf3f3869ebbf5ad8cd47fd8 to your computer and use it in GitHub Desktop.
Prepend JIRA issue name to commits
This file contains 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
To set up: | |
Create the directory ~/.git-templates/hooks and save the above content in a file named prepare-commit-msg in that directory | |
Run chmod a+x ~/.git-templates/hooks/prepare-commit-msg | |
Run git config --global init.templatedir '~/.git-templates' | |
In any repos you already have on your machine, run git init to apply the changes. Newly cloned repos won't need this step. | |
Once this has been set up, running a command like git commit -m "This is a test message" on a branch such as ABC-123 will produce a final commit message of [ABC-123] This is a test message automatically. |
This file contains 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 | |
# Include any branches for which you wish to disable this script | |
if [ -z "$BRANCHES_TO_SKIP" ]; then | |
BRANCHES_TO_SKIP=(master develop staging test) | |
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 \ | |
'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/') | |
# 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