python製pre-commitのプラグインを書いた

書いたプラグインは、以下のリポジトリです。
https://github.com/jiikko/pre-commit-hooks


このプラグインはPython製のpre-commitツール用です。pre-commitはGitのpre-commit hookを管理・実行するための高機能ツールで、多くの拡張性を持っています。

このプラグインを開発する背景には、同様の機能をRuboCopで実現することも可能ですが、新しいCopをプロジェクトに導入する際に時間がかかるという問題がありました。特に、新しいCopをRuboCopのコアに追加するプロポーサルを出して、それがマージされるまでの時間はかなりのものです。

公共の利益に資するようなLintは、プロジェクト自体に組み込むべきですが、個々の開発者がすぐに導入したいLintについては、pre-commitのようなツールが非常に便利です。特に、職場のプロジェクトに新しいLintを導入する場合、チームの合意が必要であり、リジェクトされる可能性も考慮しなければなりません。


私が今回開発したプラグインは、Ruby製のpre-commitツールに既に存在するmigrationチェックと同じです。
https://github.com/jish/pre-commit

(ツール名が被っていてややこしいですが、python版pre-commitは、プラグイン(hook)が大量にあるので、python版の方がおすすめです。)

migrationチェックとは、railsでmigrationファイルを作ったとき、db/schema.rbはステージしたけど、migrationファイルステージせずコミットすると指摘してくれます。逆も然りです。
作り方を覚えたので引き続き作っていきたいですまる。

以上。