Notice
suyeonme
[Git] 모노레포 환경에서 Husky로 Git Hook 설정하기(Commit전 console.log 제거) 본문
프로그래밍👩🏻💻/Git
[Git] 모노레포 환경에서 Husky로 Git Hook 설정하기(Commit전 console.log 제거)
suyeonme 2024. 5. 16. 17:12Commit 대상 파일에 console.log가 포함되어있는 경우, commit 막기
Git flow 전략을 사용해서 브랜치를 관리하는 경우, master 브랜치는 곧 배포 브랜치입니다. 따라서 브랜치에 작업물을 Commit하는 경우, console이 포함되어있다면 Github Hook을 이용하여 commit을 못하도록 막을 수 있습니다.
보편적으로 운영환경에서는 console을 제거합니다. 이유는 다음과 같습니다.
- console에는 민감정보를 포함할 수 있습니다.
- console로 번들사이즈가 늘어납니다.
스크립트 작성하기
(1) 스크립트 파일 생성 및 작성
저의 경우, script/check-console.sh 파일을 생성했습니다. 해당 스크립트는 husky가 설치된 루트에 위치시킵니다.
아래는 기본적으로 메세지를 띄우는 스크립트입니다.
#!/usr/bin/env sh
# 커밋 대상 파일에 console.log가 포함되어있는지 확인
if git diff --cached --name-only --diff-filter=ACMRT | xargs grep -i 'console\.log' --with-filename --line-number; then
echo "COMMIT REJECTED! Please remove console."
exit 1
fi
텍스트에 색상을 입히고 싶은 경우, 다음과 같이 스크립트를 작성합니다.
#!/usr/bin/env sh
red='\033[0;31m'
green='\033[0;32m'
yellow='\033[0;33m'
no_color='\033[0m'
# 커밋 대상 파일에 console.log가 포함되어있는지 확인
if git diff --cached --name-only | xargs grep -i 'console\.log' --with-filename --line-number;
then
echo -e "\n${red}COMMIT REJECTED! Please remove console."
exit 1;
fi
echo -e "${green}SUCCESS! No console is found."
exit 0;
(2) pre-commit 파일에 스크립트 추가
.husky/pre-commit 파일에 작성한 스크립트를 추가합니다.
#!/usr/bin/env sh
# Check console.log is included in staged files
sh scripts/check-console.sh
저의 경우, 모노레포로 구성된 프로젝트라서 아래와 같이 작성해주었습니다.
#!/usr/bin/env sh
# 현재 스크립트 파일이 위치한 디렉토리를 기준으로 .husky.sh 파일을 실행
. "$(dirname -- "$0")/_/husky.sh"
cd packages/backend
# Check console.log is included in staged files
sh scripts/check-console.sh
(3) 테스트
소스코드에 console.log 추가 후, commit을 시도합니다.
- COMMIT REJECTED! 부분은 소스코드에 console을 추가한 경우입니다.
- SUCCESS! 부분은 소스코드에 console이 포함되지않은 경우입니다.
'프로그래밍👩🏻💻 > Git' 카테고리의 다른 글
[Git] 모노레포 환경에서 Husky로 Git Hook 설정하기(commitlint) (0) | 2024.05.16 |
---|---|
[Git] 모노레포 환경에서 Husky로 Git Hook 설정하기(lint-staged) (0) | 2024.05.06 |
[Git] Tag 명령어 정리 (0) | 2022.10.18 |
[Git] 파일의 대소문자 변경시, 반영안되는 경우 해결하기 (0) | 2022.07.18 |
[Git] multi line으로 커밋 메세지 작성하기 (0) | 2022.07.02 |
Comments