エンジニアの出口 (@dex1t)です。
プルリクエスト毎に、コードの品質をチェックしてくれるHound CIですが、
ということで、自前でホスティングしてみました。Hound自体は、こちらで公開されています。
Houndを手元で動かすにあたって、基本はこちらのドキュメントに沿って進めていけばいいのですが、いくつかハマりどころがありました。
template0を明示する
Houndに限ったことではなくPostgresqlの環境によりますが、template1がUTF8以外で作られている環境では、
rake db:create
に失敗することがありました。
config/database.yml
にtemplate: template0
を明示してあげる必要があります。
Stripeのアカウントを用意する
PrivateリポジトリをHoundに登録する際に、決済サービスのStripeのAPIを叩くため、API Keyが必要になります。
アカウントを用意した後で、Stripeのtest環境用API Keyを、Houndの.env
にセットしましょう。
StripeでPrivateプランを作る
ここが最大のハマりどころですが、HoundにPrivateリポジトリを登録する際には、 Stirpe上でPrivateプラン (本番だとこれが月額$12) を購入することになります。
手元の環境でも同様に、プランをStripe上に用意してあげる必要があります。
Stripeのダッシュボードからプランが作成できるので、ID: private
という名前で適当に作成しましょう。
ここまでをクリアすれば、あとは普通のRailsアプリの感覚で手元で動かすことができると思われます。
自前のカスタムCopを使う
Hound CIは、Rubyのコードを静的解析するためにRubocopを使っています。 そのため、Rubocop用のrubocop-rspecや、自前のカスタムCopを、Gemfileに追加するだけでHoundでも利用できます。
手元のRubocopとHound CIのコーディング規約を揃えたい
Hound CIがある場合でも、手元でRubocopを回したい場合もあります。 ただ、両者のコーディング規約を揃えておかないと、いまいちです。
これはHoundのドキュメントにもありますが、
各リポジトリに、.hound.yml
を置いて、
ruby: config_file: .rubocop.yml
のようにコーディング規約にどのファイルを使うのかを明示してあげられます。
これによって、Houndに手元のrubocopの規約を流し込むことができます。
おわり
これで弊社のBot、ジャーニーくんがコメントをくれるようになりました!