-
-
Save bmartel/d23b2b3c62976844cf2335252332ffb2 to your computer and use it in GitHub Desktop.
How to automatically prepend git commit with an issue id extracted from a branch name
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 | |
| # Skip prepending certain branches | |
| if [ -z "$BRANCHES_TO_SKIP" ]; then | |
| BRANCHES_TO_SKIP=(master develop test) | |
| fi | |
| # Extract issue id from branch name | |
| BRANCH_NAME=$(git symbolic-ref --short HEAD) | |
| BRANCH_NAME=$(echo "${BRANCH_NAME##*/}" | sed 's/\([a-zA-Z]\{3,\}-[0-9]\{3,\}\).*/\1/') | |
| # Check that branch name is not excluded or already in the current commit | |
| BRANCH_EXCLUDED=$(printf "%s\n" "${BRANCHES_TO_SKIP[@]}" | grep -c "^$BRANCH_NAME$") | |
| BRANCH_IN_COMMIT=$(grep -c "$BRANCH_NAME" $1) | |
| # Prepend issue id to commit | |
| if [ -n "$BRANCH_NAME" ] && ! [[ $BRANCH_EXCLUDED -eq 1 ]] && ! [[ $BRANCH_IN_COMMIT -ge 1 ]]; then | |
| sed -i.bak -e "1s/^/[$BRANCH_NAME] /" $1 | |
| fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment