Skip to content

Instantly share code, notes, and snippets.

@markruler
Last active December 16, 2022 06:55
Show Gist options
  • Save markruler/e93d2cfc1339d9a03c2ad8ebf1c5005a to your computer and use it in GitHub Desktop.
Save markruler/e93d2cfc1339d9a03c2ad8ebf1c5005a to your computer and use it in GitHub Desktop.
GitHub 커밋 메세지에 JIRA 이슈번호 자동으로 넣어주기
#!/usr/bin/env bash
if [ -z "$BRANCHES_TO_SKIP" ]; then
BRANCHES_TO_SKIP=(master develop release hotfix)
fi
PROJECT_ID=ASA
BRANCH_NAME=$(git symbolic-ref --short HEAD)
BRANCH_NAME="${BRANCH_NAME##*/}"
JIRA_ID=`echo $BRANCH_NAME | egrep -o "$PROJECT_ID-[0-9]+"`
BRANCH_EXCLUDED=$(printf "%s\n" "${BRANCHES_TO_SKIP[@]}" | grep -c "^$BRANCH_NAME$")
COMMIT_MSG_HEAD=$(head $1 -n 1)
BRANCH_IN_COMMIT=$(grep -c $COMMIT_MSG_HEAD)
if [ -n $JIRA_ID ] && ! [[ $BRANCH_EXCLUDED -eq 1 ]] && ! [[ $BRANCH_IN_COMMIT -ge 1 ]]; then
sed -i.bak -e "1s/^/$JIRA_ID #time /" $1
fi
@markruler
Copy link
Author

markruler commented Sep 1, 2021

원본은 오류가 없지만
수정본의 브랜치명을 검사하는 부분에 오류가 있어서 수정함.

CLI 환경에서 오류가 있습니다.

$1COMMIT_MSG_FILE (커밋 메시지 파일 경로)를 의미하는데 git 명령어를 사용할 경우 해당 파일의 주석에 브랜치명이 포함되어 있습니다. 수정된 코드에서는 $1 파일의 첫 줄만 검사하도록 변경했습니다. 추가로 Jira 이슈 번호 뿐만 아니라 #time 까지 입력하도록 추가했는데 필요없으신 분은 해당 부분 제거하시면 됩니다.

@onethegarden
Copy link

혹시 이거 mac 에서 잘 동작 하나요~?

@markruler
Copy link
Author

이 스크립트 당시 몇 주 써보고 안 쓰고 있습니다. rebase 할 때 커밋 할 때마다 저 스크립트가 동작해서 더 불편하네요. 이슈 번호가 있는데 또 붙이기도 하고요.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment