pre-commit hook, 나도 한번 써보자 (1)
이 글은 pre-commit hook 을 사용하고 전파하기 위해 작성한 시리즈 글입니다.
설치 및 설정하기
- 작업 환경에 맞게 pre-commit hook을 설치한다
- pre-commit 환경을 추가한다. 우선은 제대로 따라해보기 위해 예시만 간략히 써보자.
- 추가할 수 있는 훅의 종류는 여기를 참조한다.
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
hooks:
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/psf/black
rev: 19.3b0
hooks:
- id: black
- 브랜치에 깃 훅 스크립트를 설치한다
pre-commit install
- 수동으로 돌려본다
pre-commit run --all-files
- 앞으로 매 커밋마다
pre-commit훅이 걸릴 것임.똥같은구린 코드를 커밋하면 아래와 같은 수정내역이 뜬다!
오후 1:54 Commit failed with error
0 file committed, 5 files failed to commit: feat: pre-commit hook 추가
Check Yaml...........................................(no files to check)Skipped
Fix End of Files.........................................................Passed
Trim Trailing Whitespace.................................................Passed
black....................................................................Failed
- hook id: black
- files were modified by this hook
reformatted /home/l4in/garage.object/01_객체,설계/01_대충설계한코드/audience.py
reformatted /home/l4in/garage.object/01_객체,설계/01_대충설계한코드/bag.py
All done! ✨ 🍰 ✨
2 files reformatted, 3 files left unchanged.
mypy.....................................................................Failed
- hook id: mypy
- exit code: 2
01_대충설계한코드 is not a valid Python package name
제거하기
- pre-commit 훅 삭제는 다음 링크를 참고한다
차후 해볼것
- CI 연동
- 더 없나 찾아보자