👀
pre-commitによる各Git Hooksの設定
pre-commitとは?
pre-commitは、Pythonで書かれたGit Hooks設定ツールです。
簡単な手順でGit Hooksを設定することができます。
インストール
pip install pre-commit
設定ファイル作成
.pre-commit-config.yaml
を作成し、次のような設定を記述します。
.pre-commit-config.yaml
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: 22.10.0
hooks:
- id: black
設定適用
pre-commit install
これだけで、pre-commitのGit Hooksが動くようになります。
初回動作時はインストールが走るので、少しだけ実行に時間がかかります。
pre-commit以外のGit Hooksを設定する
名前のとおり、このライブラリはpre-commitの設定をデフォルトとしています。
pre-commit以外のGit Hooksを設定する場合は、別途指定が必要です。
サポート対象のGit Hooks一覧
公式ドキュメントによると、次のGit Hooksをサポートしています。
- commit-msg
- post-checkout
- post-commit
- post-merge
- post-rewrite
- pre-commit
- pre-merge-commit
- pre-push
- pre-rebase
- prepare-commit-msg
設定ファイルの更新
今回はpre-pushのGit Hooksを設定していきます。
まずはpre-pushの対象にstages
を追加します。
.pre-commit-config.yaml
- repo: https://github.com/psf/black
rev: 22.10.0
hooks:
- id: black
stages: [pre-push]
複数のGit Hooksで動かしたい場合は、配列に複数の値を指定します。
stages: [pre-commit, pre-push]
設定の適用
設定を適用するときにも、対象のGit Hooksを指定します。
pre-commit install -t pre-push
複数のGit Hooksを指定している場合、それぞれに対してコマンドを実行する必要があります。
例として、下記ではpre-commitとpre-pushを適用しています。
pre-commit install
pre-commit install -t pre-push
NCDC株式会社( ncdc.co.jp/ )のエンジニアチームです。 募集中のエンジニアのポジションや、採用している技術スタックの紹介などはこちら( github.com/ncdcdev/recruitment )をご覧ください! ※エンジニア以外も記事を投稿することがあります
Discussion