HoundCIでリポジトリに番犬を飼おう

プルリクエストのレビュー時に 「規約では1行あたり最大80文字なので、1文字削ってください」 などと一々指摘していると人間関係が破綻する可能性があります。
こういう定量的なものに関してはロボットに任せるのが一番です。
そこでHoundCIを使いましょう。
これはRubocopにリポジトリを監視させるというコンセプトのサービスです。
HoundCIを使うメリット
- コーディング規約違反のコードがmasterに入る前に必ず検知できる
- チームメンバー全員でRubycopを使う必要がない
- ダルいコーディング規約に関する議論が可視化できる
- 人間関係が壊れない(重要)
気軽にみんなでRubocopを使える
Qiitaの上のような記事を読んでから、暇があったら導入しようと思ったけど、ついに導入しませんでした。というか、試してみたもののルーチン化まではしませんでした。Rubocopの存在は知っていても、チームメンバー全員に必ず使ってもらう、というのは結構ツラいのではないかなと思いました。
Guardなどでルーチン化出来ればよいのですが、デザイナーさんもGitを使うご時世です。
それに、使っていたとしても人間は失敗をする生き物なので、間違ってコミットする可能性もあります。
masterにコーディング規約に反したコードがコミットされるのを防ぐのが目的であれば、その箇所に一番近い部分でvalidationをかけるべきだと思います。
この規約って必要?
デフォルトではHoundCIはかなり厳しい規約を採用していて、「えっ?これって守る必要あるかな?」と疑問に思うことも少なくありません。ひとりでRubocop使っているとその状況を共有しづらいですが、HoundCIではGithubにコメントされるカタチで指摘されるのでメンバー全員でそれを確認することができます。
「いぬのくせにっ」
チーム円満の秘訣。
定量的に測定可能な細かいことはロボットに言わせましょう。細かいことを指摘するのも指摘されるのも、人間相手だと気分の良いものではありません。でも、ロボット相手だと「いぬのくせに生意気だ!」などと思う割に、なぜか嫌な気持ちにはなりません。
HoundCIを使うデメリット
- 秘密保護の問題
- メール
秘密は守られるのか
信頼と実績のthoughtbotによって作られており、ソース自体も公開されています。
なので、直接HoundCIを使うのが嫌な場合は、自社などの安全な環境にホストして、 好みのgithubユーザを作り上げ、それにビシバシと規約チェックをやってもらうというマゾヒスティックな運用 もできそう。
むしろそっちのほうが需要がありそうな気が…
ワンワン!
むしろメリットですが、コーディング規約違反のコミットがpushされると指摘されます。 その箇所が多いとその数だけ指摘を受けるので、Githubからメールがたくさん届きます。とてもウザいですが、自分が悪いのでせっせと直しましょう。
いぬに吠えられている様子です( ˘ω˘)“
まとめ
導入方法もとっても簡単なので、ぜひ使ってみましょう。
導入方法
- HoundCIに行き、
- Githubアカウントでログインして、
- 監視対象リポジトリを設定するだけです。
いぬ、かわいい。