터미널에서 사용하려는 repository에 들어갑니다.
.git/hooks 폴더에 들어갑니다.
빔이나 나노같은 텍스트에디터로 prepare-commit-msg 파일을 만듭니다. (확장자는 없습니다.)
아래 코드를 작성하고 저장합니다.
#!/bin/sh
# Git repository의 root directory 경로를 구합니다.
git_root="$(git rev-parse --show-toplevel)"
# Git commit 시 전달되는 커밋 메시지를 저장하는 변수입니다.
commit_msg_file="$git_root/.git/COMMIT_EDITMSG"
# 브랜치 이름에서 이슈 키를 추출합니다.
issue_key_regex='([A-Z]+-[0-9]+)$'
branch_name=$(git rev-parse --abbrev-ref HEAD)
if [[ "$branch_name" =~ $issue_key_regex ]]; then
issue_key=${BASH_REMATCH[1]}
else
issue_key=""
fi
# 이슈 키가 존재하면 커밋 메시지 끝에 이슈 키를 추가합니다.
if [ -n "$issue_key" ]; then
echo "" >> $commit_msg_file
echo "[$issue_key]" >> $commit_msg_file
fi
터미널에서, chmod +x prepare-commit-msg
를 입력하여 실행권한을 줍니다.
이제 커밋할때마다 자동으로 커밋의 마지막 줄에 이슈키가 작성됩니다.
feature/이름/브랜치명-이슈키 일 경우
issue_key_regex='([A-Z]+-[0-9]+)$'
feature/이름/이슈키-브랜치명 일 경우
issue_key_regex='(?<=\/)[A-Z]+-\[0-9]+'
feat/이름/이슈키/브랜치명 일 경우
issue_key_regex='\/([A-Za-z]{2}-[0-9]+)\/'
https://confluence.atlassian.com/stashkb/integrating-with-custom-jira-issue-key-313460921.html