Repolode
evilmartians

evilmartians/lefthook

Go製の高速なGit hooks管理ツール。Node.js、Ruby、Pythonなどのプロジェクトで、pre-commitをはじめとするhookコマンドを並列実行します。

代替できる製品:Husky

スター
8,931
フォーク
325
未解決の Issue
91
最終コミット
昨日

これは何?

Lefthookは、単一のlefthook.ymlファイルでプロジェクトのGit hooksを管理します。pre-commit、pre-push、commit-msgなどのhookに実行するコマンドを定義し、lefthook installを一度実行すればリポジトリに設定できます。依存関係のない単一バイナリとして配布されており、npm、gem、pipx、Go、Homebrew、apt、wingetなどのパッケージマネージャーからもインストールできます。

各hookではジョブを並列実行でき、globパターン、除外設定、またはステージ済みファイルの一覧を使って対象ファイルを絞り込めます。ジョブはタグでグループ化でき、rootを指定してサブディレクトリ内で実行したり、スクリプトファイルを実行したり、docker runなどのrunner経由で実行したりできます。ローカルのオーバーライドファイル(lefthook-local.yml)を使えば、共有設定を変更せずに個々の開発者がジョブをスキップしたり変更したりできます。

hook以外にも、設定ファイルで定義したコマンドをlefthook runで直接実行でき、チーム共通のfixerやlinterを使うのに便利です。出力を実行メッセージと失敗メッセージだけに絞ることもできます。

主な機能

  • 01hookコマンドを並列実行し、pre-commitやpre-pushのチェック時間を短縮します。
  • 02globパターン、除外設定、ステージ済みファイルの一覧を使って、ジョブごとに対象ファイルを絞り込みます。
  • 03ジョブをタグでグループ化し、hookごとに対象に含めたり除外したりできます。
  • 04ジョブをサブディレクトリやスクリプトファイル、Dockerコンテナ内で実行できます。
  • 05開発者がローカル設定ファイルに個別のオーバーライドを記述できます。

ユースケース

  • コミットのたびに、ステージ済みファイルに対してESLint、Stylelint、RuboCopを実行する。
  • push前に依存関係を監査したり、セキュリティチェックを実行したりする。
  • commit-msgスクリプトでコミットメッセージのテンプレートを徹底する。
  • チーム共通のfixerを用意し、必要に応じてlefthook runで実行する。

クイックスタート

  1. 1

    npmでlefthookを開発依存関係としてインストールする

    npm install lefthook --save-dev
  2. 2

    lefthook.ymlでフックを設定する

  3. 3

    Gitプロジェクトにフックをインストールする

    lefthook install

使う前に知っておきたいこと

  • 一部の設定や使い方の詳細は、外部のドキュメントサイトにのみ掲載されています。

トピック

よくある質問

lefthook とは?
Go製の高速なGit hooks管理ツール。Node.js、Ruby、Pythonなどのプロジェクトで、pre-commitをはじめとするhookコマンドを並列実行します。 Lefthookは、単一のlefthook.ymlファイルでプロジェクトのGit hooksを管理します。pre-commit、pre-push、commit-msgなどのhookに実行するコマンドを定義し、lefthook installを一度実行すればリポジトリに設定できます。依存関係のない単一バイナリとして配布されており、npm、gem、pipx、Go、Homebrew、apt、wingetなどのパッケージマネージャーからもインストールできます。
lefthook は無料で使えますか?ライセンスは?
lefthook は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
lefthook は今もメンテナンスされていますか?
活発にメンテナンス中。lefthook の最終コミットは 2026年10月21日 です。
lefthook は何に使えますか?
コミットのたびに、ステージ済みファイルに対してESLint、Stylelint、RuboCopを実行する。 push前に依存関係を監査したり、セキュリティチェックを実行したりする。 commit-msgスクリプトでコミットメッセージのテンプレートを徹底する。 チーム共通のfixerを用意し、必要に応じてlefthook runで実行する。
lefthook のインストール方法は?
npmでlefthookを開発依存関係としてインストールする: npm install lefthook --save-dev lefthook.ymlでフックを設定する Gitプロジェクトにフックをインストールする: lefthook install
lefthook はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/evilmartians/lefthook

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト