지난 포스트에서 Github+Jira를 연결하고 Issue까지 연동하는 작업을 완료했다.
아래 사진 상으로 1, 5를 자동화한 셈인데 여기에 3, 4번도 개선할 수 있는 방법이 있을까 생각하던 중
Husky를 이용하여 커밋을 컨벤션에 맞게 수정할 수 있다는 것을 알게 되었다.
그래서 이번 포스트에서는 Husky를 이용해 커밋 메시지에 Jira Ticket Number를 넣도록 설정해 보려고 한다.
✅ Husky란? - Husky는 git hooks 를 적용하게 해주는 라이브러리로, - Git Repo에서 특정 이벤트가 발생하면 자동으로 스크립트를 실행해 준다 - ex. commit, merge, push 발생 전 |
Husky 설치 및 세팅
1. Husky 설치
npm install husky jira-prepare-commit-msg --save-dev && npx husky install
이렇게 설치하고 나면 아래 사진처럼 .husky 폴더가 생겼을 것이다!
2. prepare-commit-msg 스크립트 추가
.husky/prepare-commit-msg 파일을 만들어 아래 내용을 추가한다
(.husky/_/prepare-commit-msg 이 아님!)
#!/usr/bin/env sh.
"$(dirname -- "$0")/_/husky.sh"
npx jira-prepare-commit-msg $1
3. package.json에 컨벤션 추가
package.json에 컨벤션만 추가하면 끝!
Jira Ticket Number가 있는 브랜치만 사용하기 위해 다른 브랜치들은 ignore 해준다.
"jira-prepare-commit-msg": {
"messagePattern": "[$J] $M",
"allowEmptyCommitMessage": false,
"ignoredBranchesPattern": "^(master|main|dev|develop|development|release)$"
},
추가로 다른 작업자가 실행 시에도 husky install을 해주기 위해 scripts 영역에 아래 내용도 추가한다.
"scripts": {
"postinstall": "husky install",
...
},
🔥 Trouble Shooting : Permission Denied
이렇게 준비 후, 커밋을 하니 husky.sh 파일 Permission Denied 이슈가 발생했다.
해당 파일의 실행 권한이 없어 발생하는 문제로 실행 권한을 추가해 주면 된다.
chmod +x .husky/_/husky.sh
결과
이렇게 세팅 후 커밋하면 커밋 메시지가 수정된다!
요즘 CI/CD 구축... 환경 세팅... 이런 게 너무 재미있다
그렇지만 너무 모든 것을 자동화 해버리는 게 과연 좋을까? 의문이 든다
이렇게 세팅해 두고 이슈가 발생하면 세팅한 사람 말고는 원인을 파악할 때 힘들 것 같은데...
오히려 이슈 발생 시 작업 시간이 길어지게 되지는 않을지 걱정도 된다
일단은 같이 작업하는 사람은 한명이니 둘이서 잘 사용해 보고 경과를 지켜봐야겠다 😎
'⚒️ 기타' 카테고리의 다른 글
프로젝트에서 Github와 Jira 함께 사용하기 (4) - Github Actions로 Github 이슈 닫기 자동화 (0) | 2024.07.09 |
---|---|
프로젝트에서 Github와 Jira 함께 사용하기 (3) - Github Actions로 Jira 이슈 등록 자동화 (1) | 2024.07.08 |
프로젝트에서 Github와 Jira 함께 사용하기 (2) - Github와 Jira 연동하기 (0) | 2024.07.08 |
프로젝트에서 Github와 Jira 함께 사용하기 (1) - Jira란? (0) | 2024.07.08 |