解決したいこと
既存のRailsアプリにHaml Lintを入れてプルリクエスト時にSiderでチェックしてもらおうとしました。
ローカルでもSider内のログでも、Linterのエラーが出てるのに、プルリクエストにSiderからのコメントが付かなかったのです。
結論
Siderは変更分しか解析してくれない。
例えば、既存のアプリがLinterのルール違反を既に持っている状態で、Linterを導入し、プルリクエストを作成したとします。
このプルリクエストには、ルール違反の記述をもつ変更が含まれないため、Sider的にはIssue扱いにはならず、Greenでパスします。
詳細
Siderは以下リポジトリにあるSider Runnersという仕組みで解析が行われてます。
https://github.com/sider/runners
大枠として、以下の流れで解析が行われます。
exe/runners
↓
CLI(lib/runners/cli.rb)
↓
lib/runners/harness.rb
↓
lib/runners/workspace/git.rb
ここで変更内容を取得
https://github.com/sider/runners/blob/master/lib/runners/workspace/git.rb#L89
↓
lib/runners/processor.rb
解析ツールごとのDockerイメージを準備
↓
lib/runners/harness.rb
変更内容を前提に、解析ツールを実行。
https://github.com/sider/runners/blob/0.47.0/lib/runners/harness.rb#L62
↓
lib/runners/result.rb
変更内容で結果をフィルタリング
https://github.com/sider/runners/blob/master/lib/runners/harness.rb#L71