사전 커밋을 위한 일부 기본 후크입니다.
참조: https://github.com/pre-commit/pre-commit
이것을 .pre-commit-config.yaml
에 추가하세요.
- repo: https://github.com/pre-commit/pre-commit-hooksrev: v5.0.0 # 가리키고 싶은 참조를 사용하세요: - ID: 후행 공백# - ID: ...
check-added-large-files
대용량 파일이 커밋되는 것을 방지합니다.
args: ['--maxkb=123']
(기본값=500kB).
확인된 파일을 git에서 추가하기 위해 준비된 것으로 표시된 파일로 제한합니다.
git-lfs
가 설치되면 lfs 파일을 건너뜁니다( git-lfs>=2.2.1
필요).
--enforce-all
— 추가를 위해 준비된 파일뿐만 아니라 나열된 모든 파일을 확인합니다.
check-ast
파일이 유효한 Python으로 구문 분석되는지 확인하기만 하면 됩니다.
check-builtin-literals
비어 있거나 0개의 Python 내장 유형을 초기화하는 경우 리터럴 구문이 필요합니다.
위치 인수(예: list('abc')
)를 사용하여 생성자를 호출할 수 있습니다.
builtins
( __builtin__
) 네임스페이스( 내장)( builtins.list()
)에서 생성자를 호출할 수 있습니다.
--ignore=type1,type2,…
사용하여 특정 내장 유형에 대한 이 요구 사항을 무시합니다.
--no-allow-dict-kwargs
를 사용하여 dict
키워드 구문을 금지합니다.
check-case-conflict
MacOS HFS+ 또는 Windows FAT와 같이 대소문자를 구분하지 않는 파일 시스템에서 이름이 충돌할 수 있는 파일을 확인하세요.
check-docstring-first
독스트링 앞에 코드를 배치하는 일반적인 오류를 확인합니다.
check-executables-have-shebangs
바이너리가 아닌 실행 파일에 적절한 shebang이 있는지 확인합니다.
check-illegal-windows-names
Windows에서 생성할 수 없는 파일을 확인하세요.
check-json
구문을 확인하기 위해 모든 json 파일을 로드하려고 시도합니다.
check-merge-conflict
병합 충돌 문자열이 포함된 파일을 확인하세요.
--assume-in-merge
- 진행 중인 병합 작업이 없을 때 후크 실행을 허용합니다.
check-shebang-scripts-are-executable
shebangs가 포함된 스크립트가 실행 가능한지 확인합니다.
check-symlinks
아무 것도 가리키지 않는 심볼릭 링크를 확인합니다.
check-toml
구문을 확인하기 위해 모든 TOML 파일을 로드하려고 시도합니다.
check-vcs-permalinks
vcs 웹사이트에 대한 링크가 영구링크인지 확인합니다.
--additional-github-domain DOMAIN
- 지정된 도메인에 대한 확인을 추가합니다. 여러 번 반복할 수 있습니다. 예를 들어 회사에서 GitHub Enterprise를 사용하는 경우 --additional-github-domain github.example.com
과 같은 것을 사용할 수 있습니다.
check-xml
구문을 확인하기 위해 모든 xml 파일을 로드하려고 시도합니다.
check-yaml
구문을 확인하기 위해 모든 yaml 파일을 로드하려고 시도합니다.
--allow-multiple-documents
- 다중 문서 구문을 사용하는 yaml 파일을 허용합니다.
--unsafe
- 파일을 로드하는 대신 구문을 분석하기만 하면 됩니다. 구문 전용 검사를 통해 금지된 확장 및 안전하지 않은 구문을 활성화할 수 있습니다. 이 옵션을 사용하면 다른 yaml 구현에 대한 모든 이식성이 보장되지 않습니다. --allow-multiple-documents
의미합니다.
debug-statements
Python 소스에서 디버거 가져오기 및 py37+ breakpoint()
호출을 확인하세요.
destroyed-symlinks
해당 심볼릭 링크가 가리키는 경로의 내용을 사용하여 일반 파일로 변경된 심볼릭 링크를 감지합니다. 이는 일반적으로 사용자가 심볼릭 링크가 있는 저장소를 복제했지만 심볼릭 링크를 생성할 권한이 없는 경우 Windows에서 발생합니다.
detect-aws-credentials
AWS CLI를 사용하여 설정한 AWS 암호가 있는지 확인합니다. 다음 인수를 사용할 수 있습니다.
--credentials-file CREDENTIALS_FILE
- 구성된 자격 증명을 가져올 비표준 위치에 있는 추가 AWS CLI 스타일 구성 파일입니다. 여러 번 반복할 수 있습니다.
--allow-missing-credentials
- 자격 증명이 감지되지 않으면 후크 통과를 허용합니다.
detect-private-key
개인 키가 있는지 확인합니다.
double-quote-string-fixer
이 후크는 큰따옴표로 묶인 문자열을 작은따옴표로 묶은 문자열로 바꿉니다.
end-of-file-fixer
파일이 줄바꿈으로 끝나고 줄바꿈으로만 끝나는지 확인합니다.
file-contents-sorter
지정된 파일의 행을 정렬합니다(기본값은 알파벳순). 대상 files
입력으로 제공해야 합니다. 이 후크는 빈 줄을 제거하고 어떤 주석도 존중하지 않는다는 점에 유의하세요. 모든 줄 바꿈은 줄바꿈( n
)으로 변환됩니다.
다음 인수를 사용할 수 있습니다.
--ignore-case
- 소문자를 대문자로 변환합니다.
--unique
- 각 줄이 고유한지 확인합니다.
fix-byte-order-marker
UTF-8 바이트 순서 마커를 제거합니다.
fix-encoding-pragma
py2는 EOL이므로 더 이상 사용되지 않습니다. 대신 pyupgrade를 사용하세요.
Python 파일 상단에 # -*- coding: utf-8 -*-
추가합니다.
코딩 프라그마 패스를 제거하려면 --remove
(python3 전용 코드베이스에 유용함)
forbid-new-submodules
새로운 git 하위 모듈 추가를 방지합니다.
이는 하위 모듈에서 마이그레이션하기 위한 도우미로 사용됩니다. 완전히 금지하려면 forbid-submodules
사용하세요.
forbid-submodules
저장소의 모든 하위 모듈을 금지합니다.
mixed-line-ending
혼합된 줄 끝을 바꾸거나 확인합니다.
--fix={auto,crlf,lf,no}
이 옵션은 후크가 호출된 것보다 늦게 git smudge가 실행되므로 git setup 체크인 LF 체크아웃 CRLF와 호환되지 않습니다.
auto
- 가장 자주 사용되는 줄 끝을 자동으로 대체합니다. 이것이 기본 인수입니다.
crlf
, lf
- 줄 끝을 각각 CRLF 및 LF로 강제로 대체합니다.
no
- 파일을 수정하지 않고 줄 끝이 혼합되어 있는지 확인합니다.
name-tests-test
테스트 파일의 이름이 올바르게 지정되었는지 확인합니다.
--pytest
(기본값): 테스트가 .*_test.py
와 일치하는지 확인합니다.
--pytest-test-first
: 테스트가 test_.*.py
와 일치하는지 확인합니다.
--django
/ --unittest
: 테스트가 test.*.py
와 일치하는지 확인합니다.
no-commit-to-branch
직접 체크인으로부터 특정 지점을 보호합니다.
args: [--branch, staging, --branch, main]
사용하여 분기를 설정합니다. 분기 인수가 설정되지 않은 경우 main
및 master
모두 기본적으로 보호됩니다.
-b
/ --branch
여러 분기를 보호하기 위해 여러 번 지정할 수 있습니다.
-p
/ --pattern
제공된 정규식과 일치하는 분기를 보호하는 데 사용할 수 있습니다(예: --pattern, release/.*
). 여러 번 지정할 수 있습니다.
no-commit-to-branch
기본적으로 always_run
으로 구성됩니다. 결과적으로 files
, exclude
, types
또는 exclude_types
의 모든 설정을 무시합니다. 이러한 파일 필터에 따라 이 후크를 건너뛰도록 하려면 always_run: false
설정하십시오. 주의 사항: 이 구성에서는 빈 커밋( git commit --allow-empty
)이 이 후크에 의해 항상 허용됩니다.
pretty-format-json
모든 JSON 파일이 예쁜지 확인합니다. 여기서 "예쁘다"는 것은 키가 정렬되고 들여쓰기되었음을 의미합니다. 다음 명령줄 옵션을 사용하여 이를 구성할 수 있습니다.
--autofix
- 자동으로 json 파일 형식을 지정합니다.
--indent ...
- 들여쓰기를 제어합니다(여러 공백에 대한 숫자 또는 공백 문자열). 기본값은 공백 2개입니다.
--no-ensure-ascii
이스케이프 시퀀스로 변환하는 대신 유니코드 문자를 보존합니다.
--no-sort-keys
- 자동 수정 시 원래 키 순서를 유지합니다(키를 정렬하는 대신).
--top-keys comma,separated,keys
- 매핑 상단에 유지할 키입니다.
requirements-txt-fixer
요구 사항.txt 및 Constraints.txt의 항목을 정렬하고 pkg-resources==0.0.0
에 대한 잘못된 항목을 제거합니다.
sort-simple-yaml
주석과 블록을 보존하면서 최상위 키로만 구성된 간단한 YAML 파일을 정렬합니다.
sort-simple-yaml
매우 구체적인 형식을 적용하므로 기본적으로 files
도 일치하지 않습니다. 다음과 같이 files
설정하여 이를 선택해야 합니다.
- ID: sort-simple-yamlfiles: ^config/simple/
trailing-whitespace
후행 공백을 자릅니다.
Markdown 하드 줄바꿈을 유지하려면 args: [--markdown-linebreak-ext=md]
(또는 markdown 파일에서 사용되는 다른 확장자)를 사용하세요. 어떤 이유로든 모든 파일을 마크다운으로 처리하려면 --markdown-linebreak-ext=*
사용하세요.
기본적으로 이 후크는 줄 끝의 모든 공백을 잘라냅니다. 대신 잘라낼 사용자 정의 문자 세트를 지정하려면 args: [--chars,"<chars to trim>"]
사용하세요.
check-byte-order-marker
: 대신 fix-byte-order-marker를 사용하세요
이러한 후크를 사용하려는 경우 독립 실행형 패키지로도 제공됩니다.
간단히 pip install pre-commit-hooks