アビシニアンモードのアップデート

SideCIでは、1月から新しいコードレビューの体験のためにアビシニアンモードを提供しています。アビシニアンモードでは、SideCIが発見した問題の一覧を確認でき、それぞれについて修正するか「クローズ」するかの対応を、レビューの段階で選択することができます。クローズされた問題はSideCIから無視されますが、クローズの記録が残り、後から確認することができます。解析ツールで検出される問題の中には実際には問題とはならない偽陽性が含まれますが、これらをソースコード中の特殊なコメントなどで抑制するのではなく、検出された後に「修正しない」という対応ができようになりました。

(さらに…)

続きを読む アビシニアンモードのアップデート

SideCI の対応ツールに stylelint を追加しました

こんにちは。SideCI にて stylelint を使用した解析が行えるようになりました。

https://github.com/stylelint/stylelint

stylelint は、CSS 及び SCSS 等のスタイルシート用言語の為の Lint ツールです。
スタイルシートのコーディングスタイルの統一や、問題のあるコードの検出を行うことが可能です。

(さらに…)

続きを読む SideCI の対応ツールに stylelint を追加しました

アビシニアンモードでLINTツールの誤検出と闘う

RuboCopなどのLINTツールは、コードに含まれる潜在的な問題を検出しますが、誤検出の問題が常につきまといます。例えば、こういうプログラムに問題があると言われると、かなり厳しい思いをします。

f:id:sideci:20170407160809p:plain

このRuboCopの警告は、Railsアプリケーションの配置されているディレクトリを返すRails.rootからパスを組み立てるときには、式展開などの文字列操作ではなくPathname#joinメソッドを使うことを推奨するものです。つまり、

path = "#{Rails.root}/tmp/icons/#{user.id}.png"

ではなく、

path = Rails.root.join('tmp', 'icons', "#{user.id}.png")

と書いた方が良いという警告です。

(さらに…)

続きを読む アビシニアンモードでLINTツールの誤検出と闘う

SideCIの利用フローを大きく改善する、新機能のベータ提供を開始しました

こんにちは。本日より、非常に大きな新しい機能のベータ提供を開始しました。
この機能はまだベータ版であり、正式な名称が決まっていないことから、社内でのプロジェクト名「アビシニアン」にてご紹介させて頂きます。

アビシニアンについて

アビシニアンは、既存のSideCIの「問題が発見された場合にGitHubにコメントをする」というコア機能(※)を置き換える試験的な機能です。
※本記事内では該当機能を「コメントモード」と記載します。

コメントモードでご利用の場合、GitHub上でSideCIからのコメントをレビュアー、もしくはレビュイーの方が確認し、コードを修正するか、コメントをそのプルリクエストにおいては目をつぶるといった運用ケースが多いかと思います。
これをより厳密に、かつ現実に即した形で使いやすくした機能がアビシニアンです。
アビシニアンでは次のような形でSideCIを使って頂く事を想定しています。

  1. Pull RequestをOpenする
  2. SideCIから指摘が届いた場合、解析結果をレビュイーが確認する
  3. 指摘結果を元にコードを修正、もしくは修正しないことを明示する

この流れになることで、全てのコメントへの対応・非対応が厳密に、かつ簡単に管理されます。

(さらに…)

続きを読む SideCIの利用フローを大きく改善する、新機能のベータ提供を開始しました