[Github Hook] Jira ํฐ์ผ ๋ฒํธ ์ปค๋ฐ ๋ฉ์์ง ์๋ ์ถ๊ฐํ๊ธฐ
์ด๋ฒ ํ๋ก์ ํธ์์ ์ฒ์์ผ๋ก Jira๋ฅผ ์ฐ๋ฉด์ ์ปค๋ฐ ๋ฉ์์ง์ ๋งค๋ฒ ์ด์๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค.
๊ทธ๋์ hook์ ์ด์ฉํด์ ์๋์ผ๋ก ์ปค๋ฐ ๋ฉ์์ง ์์ ์ง๋ผ ์ด์ ๋ฒํธ๊ฐ ๋ถ๋๋ก ์ค์ ํ๋ค!
๋ด ์ค์
1. BRANCH NAMING : feature/[SO-์ด์๋ฒํธ]-๋ธ๋์น ์์ธ ์ค๋ช
ex) feature/SO-26-settings
2. feature ๋ธ๋์น์์๋ง ์์ ํ ๋ ์ด ๋ฉ์์ง๊ฐ ๋ถ๋๋ก ์ค์
main master develop release hotfix์ธ ๊ฒฝ์ฐ pass
์ฒ์์๋...
์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด์ ํ๋ ค๊ณ ํ์ผ๋? ์ด์ํ๊ฒ๋ ๋์๊ฐ์ง ์์๋ค
GitHub ์ปค๋ฐ ๋ฉ์ธ์ง์ JIRA ์ด์๋ฒํธ ์๋์ผ๋ก ๋ฃ์ด์ฃผ๊ธฐ
ํญ์ ์์ ์ด์๋ฒํธ๋ฅผ ๋ฃ์ด์ฃผ์ด์ผ ํ๋ ๊ท์ฐฎ์์ ์๋์ผ๋ก ๋ฃ์ด์ฃผ๋๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ณต์ ํฉ๋๋ค.
medium.com
https://overcome-the-limits.tistory.com/680?category=923736
[ํ์ ] ํ์ ์ ์ํ JIRA ์ด์ ๋ฒํธ ์ปค๋ฐ ๋ฉ์์ง ์๋ ์ถ๊ฐํ๊ธฐ
๋ค์ด๊ฐ๋ฉฐ ์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์, ํจ์จ์ ์ธ ์ผ์ ๊ด๋ฆฌ์ ํ์์ฑ์ ๋๋ผ๋ฉด์ JIRA๋ฅผ ์ ๊ทน์ ์ผ๋ก ๋์ ํ์ต๋๋ค. JIRA๋ฅผ ์ฒ์ ์จ๋ณด๋ฉด์, JIRA๋ฅผ ์ด๋ป๊ฒ ํ๋ฉด ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์๊น ์์
overcome-the-limits.tistory.com
๋ค๋ฅธ ๊ฒ๋ ์ฐพ์๋ณด์์ผ๋?
์ฌ๊ธฐ์๋ (2)์ธ ๋ธ๋์น ํํฐ๋ง ๊ท์น์ด ์์ด์ ์์ฌ์ ๋ค. ํ์ง๋ง ๋์๋ ๊ฐ
https://blog.deering.co/commit-convention/
git branch ์ด๋ฆ๊ณผ hook์ผ๋ก commit message ์ปจ๋ฒค์ ๊ฐ์ ํ๊ธฐ
Jira์ Conventional Commits Jira๋ก ํฐ์ผ ๊ด๋ฆฌ๋ฅผ ํ๋ฉด์ Conventional Commits ํํ๋ก ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์์ฑํ ๋ ๋ธ๋์น ์ด๋ฆ์ ์ ์ ํ๋ฉด git hook์ผ๋ก ์ปค๋ฐ ๋ฉ์์ง ์ปจ๋ฒค์ ์ ๊ฐ์ ํ ์ ์์ต๋๋ค. Convetional Commits
blog.deering.co
๊ฒฐ๊ตญ..
๋์ ํฉ์น๊ธฐ๋ก ํ๋ค. ๋ ์ง์ง ์ ๊ท์ ์ ๋ชจ๋ฅด๋๋ฐ ์ด์ฐ์ ์ฐ ์ฐธ๊ณ ํด์ ์ผ์
cd {ํ๋ก์ ํธ ๊ฒฝ๋ก}/.git/hooks
vi prepare-commit-msg.sample
mv prepare-commit-msg.sample prepare-commit-msg # ์ด๋ฆ ๋ณ๊ฒฝํ๊ธฐ
prepare-commit-msg ์ฝ๋
#!/bin/sh
# .git/hooks/prepare-commit-msg
#
# Automatically add branch name and branch description to every commit message except merge commit.
# https://stackoverflow.com/a/18739064
#
COMMIT_MESSAGE_FILE_PATH=$1
# feature ๋ธ๋์น์์๋ง ๋๋๋ก ํจ
if [ -z "$BRANCHES_TO_SKIP" ]; then
BRANCHES_TO_SKIP=(main master develop release hotfix)
fi
BRANCH_NAME=$(git symbolic-ref --short HEAD)
BRANCH_NAME="${BRANCH_NAME##*/}"
BRANCH_EXCLUDED=$(printf "%s\n" "${BRANCHES_TO_SKIP[@]}" | grep -c "^$BRANCH_NAME$")
# merge commit์ ๋ํด์๋ prefix๋ฅผ ์์ฑํ์ง ์๋๋ค.
MERGE=$(grep -c -i 'merge' < "$COMMIT_MESSAGE_FILE_PATH")
if [ "$MERGE" != "0" ] ; then
exit 0
fi
if [ $BRANCH_EXCLUDED != 1 ]; then
PREFIX=$(git branch | grep '\*' | sed 's/* //' | sed 's/^.*\///' | sed 's/^\([^-]*-[^-]*\).*/\1/')
echo "[$PREFIX] $(cat "$COMMIT_MESSAGE_FILE_PATH")" > "$COMMIT_MESSAGE_FILE_PATH"
fi
์ฌ์ฉํ๊ธฐ
์ ๋์๊ฐ์ ์์ฃผ ํธํ๋ค! ์ด์ hook์ ์กด์ฌ๋ฅผ ์์์ผ๋ ๋ณธ๊ฒฉ์ ์ผ๋ก ๊ฐ๋ฐ์ด ์์๋๊ธฐ ์ ์ pre-commit๋ ์์ฑํด๋๊ณ ์ถ๋ค
https://coderecording.tistory.com/4
[Git] hook์ ํ์ฉํ ํต์ผ์ฑ ์๋ commit message
pre-commit์ ํตํด ์ฝ๋์ ํต์ผ์ฑ์ ์ ์งํ ์ ์๋ ๊ฒ๊ณผ๊ฐ์ด ๋๋ค๋ฅธ hook์ค ํ๋์ธ commit-msg๋ฅผ ํตํด์ commit ๋ฉ์ธ์ง๋ ๊ด๋ฆฌํด์ค ์ ์๋ค. ์ด์ pre-commit์ ํ์ฉํ๋ ๊น์ ๋ค๋ฅธ hook๋ค๋ ์ ์ฉํ๋ฉด ์ข์
coderecording.tistory.com