brakemanの結果をbullet風に通知するgemを作り始めた

brakemanというRailsアプリの脆弱性がチェックできるgemがあるんだけど、使ってみるのがハードルが高かったり、知ってるけどCI設定するのが面倒で作り始めとかには辛い。でもそのままにすると最後までそのままでやっぱり辛い。重いとか一部チェックできないといった制限下でもいいから簡単に使えれば辛みが少しは減るだろうか?という事でやってみた。

実は今年のはじめにも似たような事をしててその続きのような感じ。以前はEmacsでだけ嬉しかったけど環境とか気にしたくないなと思って考えてたらbulletの存在を思い出して、同じようなものを作ってみる事にした(というかforkしてる)。

使い方はGemfileに以下のように追加して、

gem 'brakefast'

以下のファイルを修正して有効にしてサーバを実行して動かしたらそのうちalertされたりする(設定はBulletからBrakefastに変わっただけ)。

config/environments/development.rb

  config.after_initialize do
    Brakefast.enable = true
    Brakefast.alert = true
  end

たとえば、params.require(...).permit!とかするとalertされる。なお、以下のような感じでまだ作り始めたばかりなんだけど、多少動くのでgemとしてpushしてしまった。

  • Brakefast.alert以外の通知方法は試していない
  • Brakemanのオプションを指定する方法を用意していないので、特定のファイルだけチェックしたり、問題ないとわかっているものを除外できたりしない
  • 最初のアクセスでbrakemanを1回走らせてるから大きいプロダクトは重い
    • 困る人はまぁ、CIでやればいいと思う
  • brakemanのGenericWarningというものしか作ってない
  • 少なくとも今はテンプレートはチェックできない

これで埋めた端から気付けるかもしれない。