Sider Blog

コードレビュー自動化サービス「Sider」を運営するSider株式会社のコーポレートブログです。

最新版のBrakemanが利用可能に。その他、C/C++向け機能強化、コピペ検知のリリースなど

こんにちは。いつもSiderをご利用頂きありがとうございます。
製品のアップデートについては随時下記サイトにて案内をさせていただいております。
News in 2020 · Sider Documentation

今回は少々大きめのアップデートのため、ブログ記事として本記事を記載いたしました。

直近のリリース内容について

  • Ruby on Railsの開発者向けに、セキュリティ脆弱性解析ツールBrakemanの最新版を提供開始
  • C/C++向けに、フロー解析などを行うCppcheck 2.0のbug-hunting機能を提供開始
  • コピペを検知するPMD CPDの提供を開始

Brakemanについて

BrakemanはRuby on Rails向けのセキュリティ脆弱性スキャナとして有名なソフトウェアです。Siderはリリース当初からBrakemanをサポートをしていましたが、ソフトウェアのライセンスが変更されたため、変更前のMITライセンスのBrakemanをサポートしていました。今回Brakemanの商用利用が可能になったため、Brakemanの最新版の提供を開始しました。

Brakemanは現在Brakeman Public Use Licenseで提供されており、商用利用にはSynopsys社との契約が必要になっています。契約が無事締結できましたため、本機能の提供を開始することができました。

brakeman/LICENSE.md at main · presidentbeef/brakeman · GitHub

関連プレスリリース: prtimes.jp

Cppcheck 2.0のbug-hunting

C/C++向けにCppcheckのサポートを追加しておりましたが、今回、2.0にメジャーアップデートを行いました。
その際にbug-huntingといわれる新しい機能が追加されており、より多くの問題・複雑な問題を検知出来るようになりました。bug-huntingの内容については公式サイトを御覧ください。

cppcheck / News: Cppcheck-2.0

コピペを検知するPMD CPDの提供を開始

現在この機能はβ版として提供しており、デフォルトでは無効になっています。お試しになりたい方はリポジトリ設定から有効にしてください。
Pull Request内にDiffの内外問わず、重複したコードが合った場合に、Sider上でそれを検知してお知らせします。 コピペとみなすトークン数などは下記を参考に設定をお願いいたします。

PMD CPD · Sider Documentation

直近のSiderのアップデートと今後のお知らせ方法について

大きなアップデートについてはブログ記事やメールでご案内させていただくこともありますが、多くの場合、Intercom(サイト上のチャット)もしくは下記サイトでのご案内となります。

News in 2020 · Sider Documentation

一部こちらに抜粋させていただくと下記のとおりになります。

  • 月に1回程度デフォルトのバージョンの解析器のアップデート
  • 新しい解析器のサポート
    • PMD CPD(コピペ検知)
    • Pylint
    • CppcheckのAddonのサポート
      • bug-hunting
      • MISRA C, CERT Cなどのチェック
    • LanguageTool(文法等のチェック)
    • FxCop(Unityや.NetなどのC#のソースコードの解析)
    • remark-lint(Markdownファイルのチェック)
    • GolangCI-Lint(Golang)
    • detekt(Kotlin)
  • リポジトリ追加時のsider.ymlの雛形の作成Pull Requestの送付

今後も機能強化や新しい機能の追加などを行ってまいります。引き続きご利用いただくとともに、なにかご要望等ありましたらご遠慮無くご連絡くださいませ。どうぞよろしくお願いいたします。

2020年6月9日(火)データベースメンテナンスのお知らせ

いつもSiderをご利用いただきありがとうございます。

6月9日火曜日、メンテナンスのため sider.review は午後9時(JST)から約1時間ダウンします。 プラットフォームにおける重要なデータベースメンテナンスを実行します。この間、すべての操作が停止されます。

メンテナンスの進捗は、随時ステータスページにて確認いただけます。

ご不便をおかけしますが、ご理解のほどよろしくお願いいたします。

sider.yml サンプルファイル追加のPull Requestを行う機能のリリースのご案内

こんにちは。本日、リポジトリを新規にSiderに追加した際に、sider.ymlのサンプルファイルを作るPull Requestを当該のリポジトリに作成する機能をリリースいたしました。
また、当該機能の利用にあたってはSiderからGitHubに対して新しいパーミッションが要求されます。GitHubからメールが届くかと思いますのでよろしければ承認下さい。

今後、リポジトリを追加する際に、下記のようなチェックボックスがリポジトリ追加時の最終ページに表示されます。チェックを入れられた場合、sider.ymlを追加するPull Requestが自動的に作成されます。 もしご希望されない方はチェックを外して下さい。

f:id:sideci:20200514163912p:plain
Siderに新規リポジトリを追加する際の設定画面の新項目

緑色の "Start..." ボタンを押した後、そのリポジトリに対して下記のようなPull Requestが作成されます。

f:id:sideci:20200514163837p:plain
sider.ymlを作成するPull Request

上記で作られる sider.yml は書き方が分かるサンプルファイルのようなものですので、必要に合わせてご修正下さいませ。

新機能リリースについては基本的には、下記に記載をさせていただいております。
よろしければこちらも御覧ください。(ブログでは一部だけをご案内しております)

help.sider.review

引き続きどうぞよろしくお願いいたします。

SiderにてGo Meta Linterやgo vet、golintをお使いの方はGolangCI-Lintへの移行をお願いします。(2020年5月末迄)

いつもSiderをご利用いただきありがとうございます。Go Meta Linterが公式にもDeprecatedになっておりますため、Siderでは新しく、移行先としてGolangCI-Lintをサポートしています。この度、2020年5月末日をもってSiderのGo Meta Linterのサポートを終了することになりましたため、GolangCI-Lintへの移行をお願いいたします。

2020年5月末日時点でGo Meta Linter、go vet、golintが有効になっている場合、それらは無効になり、代わりにGolangCI-Lintが有効になります。事前の移行をおすすめいたします。

移行方法

  1. Go Meta Linterやgo vet、golintを使っているリポジトリの設定ページに遷移し、GolangCI-Lintを有効にして下さい
  2. Go Meta Linter、go vet、golintを同画面から無効にして下さい
    • go vet、golintもSider上ではGo Meta Linterを経由して実行するという手法をとっております。そのため、今回のGo Meta Linterのサポート廃止と同時に、go vet、golintの単独での実行サポートを廃止することとなりました
    • go vet、golintをお使いになりたい場合にはGolangCI-Lintを介してお使いいただく事ができます
    • SiderでGoLangCI-Lintを有効にするとその内部でgo vetとgolintは実行されますので追加の設定がなくても実行はされます

GoLangCI-Lintについて
公式サイト: https://github.com/golangci/golangci-lint
Siderドキュメント: https://help.sider.review/tools/go/golangci-lint

以上、お手数をおかけして恐縮ですが、利便性の向上のためにも、GolangCI-Lintへの移行をお願い致します。今後ともSiderをどうぞよろしくお願いいたします。

GitHub Appsへの切り替えのお願い【2020-1-16迄】

いつもSiderをご利用いただき、まことにありがとうございます。
Siderは現在GitHub OAuth AppsとGitHub Appsの両方の方式で稼働をしていますが、間もなくGitHub Appsのみに変更をさせていただく予定です。
そのため、GitHub OAuthでご利用中の方は、GitHub Appsに切り替えを行っていただく必要がございます。

お手数ではございますが、GitHub OAuthにてご利用中の方は、お早めに移行をしていただけますと助かります。現在GitHub Appsをご利用中のユーザー様には、影響ありません。

移行について

期日

2020年1月16日(水)
すべてのユーザの方々の移行が終わったタイミングで移行を前倒しする可能性があります。

内容

上記の期日までにGitHub Appsへ移行していないオーガニゼーションにつきましては、プルリクエストの解析が実行されなくなり、解析エラー扱いとなります。このエラーを回復していただくにはGitHub Appsへの移行を完了し、該当プルリクエストの解析を再実行していただく必要があります。

移行に関する注意点は、次の通りです。

  • 現在契約中のプランが解約されることはありません
  • この移行によってSider上のデータが消えることはありません
  • 変更に要する作業時間は数分程度です

移行理由

  • GitHub Appsでは、Checks APIなどの新しい機能を利用できます(今後の予定)。
  • GitHub Appsでは、リポジトリに別途botユーザーを登録する必要がありません。これにより、botに登録したユーザーが退職などで所属オーガニゼーションを離れてしまった場合、GitHubにSider issueコメントを送信できなくなる、といった事態を防げます。また、botのためのシートを消費することもありません。
  • GitHub Appsは、GitHubの公式に推奨された方法です。
  • GitHub Appsはリポジトリごとに権限を付与する方式なので、OAuth Appsと違って不要なリポジトリにSiderがアクセスできないようにすることができます。こちらの方が、よりセキュアです。

移行方法

移行は、以下のステップに従って、オーガニゼーションの管理者がおこなってください。

f:id:sideci:20191218131202g:plain
Migrate to GitHub Apps

ステップ1

Sider上のオーガニゼーションページにアクセスし、Activate & Migrate ボタンをクリックします。このボタンが表示されてない場合、そのオーガニゼーションはすでにGitHub Appsに移行済みですので、これらのステップは省略可能です。

ステップ2

次に、GitHub上のインストールページに自動的に移動します。ここで All repositories または Only selected repositories を選択してください。両者の違いは次の通りです。

All repositories:

インストール後に解析したいリポジトリを追加する際には、Sider上でリポジトリを追加していただくだけで可能です(現状と同様)。 本オーガニゼーション内のすべてのリポジトリに対して、Siderはアクセスすることが可能です。

Only selected repositories:

  • インストール後に解析したいリポジトリを追加する際には、GitHub上の Applications(個人アカウント向け)もしくは Installed GitHub Apps(オーガニゼーション向け)ページでSiderを選択し、追加したいリポジトリをご選択いただき、その後にSider上でリポジトリ追加を行っていただく必要がございます。
  • 現在のOAuth Appsより利便性は損なわれますが、Siderがアクセス可能なリポジトリを制御することができます。選択されていないリポジトリにSiderがアクセスすることはできません。

この設定は、インストール後でもGitHub上で変更することが可能です。

ステップ3

選択し終えたら、Install ボタンをクリックします。インストールが正常に完了すると、Siderのページにリダイレクトされます。以上で移行は完了です。プルリクエストは今まで通りに解析されます。

この移行に関して質問がある場合は、サポートまでご連絡下さい。

以上、お忙しいところお手数をおかけしますが、ご確認のほど何卒よろしくお願い致します。