2020-01-26pre-commitでPythonの開発環境を整備するPythonを使った開発をしているとき、コードレビューでコーディングスタイルなどに関する表面的な指摘をするのが面倒だ。効率化するために、コミットの時点でこれらについてのチェックを自動で行い、エラーになった場合はコミットできないようにする。hookでやろうと思っていたが、pre-commitの方が設定や管理が楽そうなので、これを選んだ。やりたいことコミット時に以下のチェックを行い、NGならコミットできなくする。オートフォーマットautopep8を使う。コーディングスタイルのチェックflake8を使う。型ヒントのチェックmypyを使う。hookを管理するためのツール。設定はyaml管理で書ける。言語としてはPython以外にGolang、Rustなどもサポートしている。pre-commit対象のローカルリポジトリのルートにcd当然だが、git管理されているリポジトリでないといけない。いう名前でファイルを作り、以下のように書く。使いたいリビジョンやタグを書く。書いた各種ツールはまだダウンロードしていない。以下にhookスクリプトが入るだけ。ダウンロードするのは次回のコミット時。