背景
git commit時にリントチェックし、チェックが通らなかったらcommitできないようにしたい。今回は自動フォーマットはしたくなかったので、リントチェックだけするようにした。ちなみに、リントチェック + 自動フォーマットしたい場合はこの辺り → pre-commit時にformatterを実行する
やり方
pre-commit + flake8をインストール
cd $GIT_PROJECT
pipenv install pre-commit
pipenv install flake8
pre-commit用のconfigファイルを作成 .pre-commit-config.yaml
repos:
- repo: https://gitlab.com/PyCQA/flake8
rev: master
hooks:
- id: flake8
.flake8用のconfigファイルを作成 .flake8
[flake8]
ignore = E501 # 1行の文字数チェックをignoreにする
; exclude = tests/*
max-complexity = 10
.git/hook/pre-commit
のスクリプトを生成
pre-commit install
これでpre-commitの設定完了。ここまでくれば各開発者がそれぞれフォーマットできる仕組みを入れればいい。
例えば、VSCodeの場合は以下の記事が参考になる↓
VSCodeのPython開発環境でpylintの代わりにflake8を導入し自動整形を設定する