リックソフトブログ

2020年06月22日

Bitbucket Code Insights は、コードレビューの質とスピードに貢献します

Author

奥村 和彦 Kazuhiko Okumura

奥村 和彦</mt:Var>

  

こんにちは

今日は、ソースコードのバージョン管理をされている方で以下のような課題をお持ちの方に、ご紹介したい機能があります。

  • Gitでバージョン管理していて、「もっとコードの品質を向上したい!」あるいは「もっとプルリクエストを有効的に活用したい!」という方。
  • Subversion (svn) からGitへの移行を考えていて「移行によって、コードの品質向上について期待できること」「コード解析と連携して、もっと効率的なコードレビューの方法」などを知りたい方。

このようなコードレビュー効率化やコードの品質向上に課題を持っている方にお薦めしたいのが、アトラシアン製品のGitホスティングツール「Bitbucket Server」の Bitbucket Code Insights(*1)です。
コードに対する静的解析やユニットテストは一般的にCIツールなどで実行しますが、Bitbucket Code Insightsではこれらの実行結果レポートをBitbucketに送信することで、プルリクエストの画面上にこれらのレポートを表示する機能です。
(*1: このブログはServer版のBitbucketを用いてご紹介しています。Atlassian CloudのBitbucketにもCode Insightsはありますが、連携できるツールや使い方などは異なる場合もあります。この点をご留意頂きお読み下さい。)

Bitbucket Code Insights のメリットは、こちらのAtlassian Blog で紹介されている文章を拝借して要約しますと次のようなものがあります。

  • コード品質を改善するための情報をより良い方法で提供します。
  • プルリクエスト中のコードレビューで、コード品質に関する問題を発見しやすくします。
  • 品質レポートでは様々な分析の要約とコード注釈を表示することで、脆弱性やコードの不吉な匂いを迅速に特定して対処することができます。

では、実際にリックソフトが取り扱っているOSSライブラリの脆弱性診断ツール WhiteSource を利用して、Bitbucket Code Insights の使い方を見ていきましょう。

WhiteSource for Bitbucket Serverを導入する

先にCode InsightsでWhiteSourceのレポートを取得する仕組みを説明させてください。

WhiteSourceによる検査は通常、CIツールで実行します。CIツールのジョブタスクでは、クローンしたリポジトリからOSSライブラリの情報をスキャンして、その情報をSaaSのWhiteSourceクラウドに送信して、スキャン情報から脆弱性を診断します。

ですが、この仕組みですとWhiteSourceの場合はCIツールからBitbucketに向けた診断結果レポートを送信することができません。そこで登場するのが、WhiteSource for Bitbucket Server(*2) です。
WhiteSource for Bitbucket Server は、WhiteSource for Developers(*3) に含まれる開発ツールの1つです。
(*2: WhiteSource for Bitbucket Server は名前が示す通り、Bitbucket Server専用のため、Atlassian Cloudには対応していません。)
(*3: Bitbucket Code Insightsを利用するには「WhiteSource for Developers」(オプション)のライセンスが必要です。)

これはBitbucket Serverと直接通信するエージェントアプリケーションを構築することで次のような仕組みで、CIツールを介さずにリポジトリのOSSライブラリを検査します。

  1. Bitbucket Serverが管理するリモートリポジトリに対してコミットを行います。
  2. コミットをトリガにして、Bitbucket ServerにインストールするWhiteSourceコネクタアプリ(*4) を介して、WhiteSource for Bitbucket Serverとの通信を開始します。
    (*4: このアプリは、WhiteSource for Bitbucket Serverのインストーラに付属しています。
  3. WhiteSource for Bitbucket Serverは、リポジトリをスキャンしてOSSライブラリの情報をWhiteSourceクラウドに転送します。
  4. WhiteSourceクラウドでは受け取ったスキャン結果を基に脆弱性検査を行い、結果を返します。
  5. WhiteSource for Bitbucket Serverは検査結果を受け取ると、Bitbucket ServerにCode Insightsフォーマットの検査結果レポートを送信します。

bitbucket-code-insights01.jpg

WhiteSource for Bitbucket Serverは、Dockerファイルで提供されます。
標準設定で使う場合には、提供されるdockerfileを使って、Dockerイメージ作成し、Dockerコンテナの立ち上げして起動することで利用できます。

Bitbucket のリポジトリをスキャンしてみる

初期設定としてWhiteSourceでスキャンを行うリポジトリを選択します。

bitbucket-code-insights02.jpg

選択したリポジトリに対して、WhiteSource for Bitbucket Serverから初期設定のためのプルリクエストが申請されますので、承認してmasterブランチにマージします。

マージが完了すると、リポジトリのファイル一覧画面に直近の検査結果のサマリが表示されるようになります。

bitbucket-code-insights03.jpg

あとはいつも通り、ローカルで修正したブランチをリモートリポジトリにプッシュすると、自動的にOSSの脆弱性検査を実行します。
この検査はBitbucket上では「ビルド」として扱われ、コミットごとに結果レポートを閲覧することができます。

bitbucket-code-insights04.jpg

bitbucket-code-insights05.jpg

そして、プルリクエストを行うと該当するコミットに紐づく検査レポートをCode Insightsレポートとして確認することができます。
画面では右上の方の"WhiteSource Security"をクリックすることで、品質レポートを表示します。

例えば画面の例ですと、利用しているOSSライブラリに脆弱性が発見されており「失敗」と表示されています。

このようにして、プルリクエストでコードレビューを行う前に、静的解析結果を一通り確認することができます。
このようにCode Insightsの品質レポートを使うことで、コードレビューの時間を有効的に利用できることがお分かりいただけますでしょうか?

bitbucket-code-insights06.jpg

bitbucket-code-insights07.jpg

その他に品質レポートから閲覧できること

今回は、WhiteSourceを用いたOSSライブラリの脆弱性検査の結果を出力しましたが、品質レポートにはその他にも、SonarQubeやSnykからもCode Insightsに対応したアプリが公開されています。

また、AtlassianのCI/CDツールであるBambooには、Build warnings parser task があり、これはビルド結果ログから警告やエラーを取得して、Bitbucketに結果レポートを出力することができるので、例えばJUnitなどの自動テストフレームワークの実行時にエラーが出ればその結果をBitbucket Code Insightsにも出力できます。

Bitbucket Code InsightsはAPIも公開されておりレポートもJSON形式となるので、お使いの静的解析ツールやユニットテストツールに対応した品質レポートをカスタマイズして、Code Insightsで表示させることもできます。

Bitbucket Code Insightsは、コード解析結果をレポーティングすることで、PRにおけるコードレビューのボトルネックを改善し、コードの品質を保ちながらリリーススピードを上げることに貢献します。コードの品質管理に興味を持って頂けたなら、Bitbucket Serverをせひご利用してみてください。

                                               

製品について詳しくはこちらをご覧ください。

Bitbucket Server WhiteSource               
                    
                                                                         

本情報はブログを公開した時点の情報となります。本情報に記載した製品、サービスについて仕様や提供方法などが変更になる場合があります。

本情報に記載した会社名・製品名・サービス名は、各社の商標または登録商標です。

ご不明な点はお問い合わせください。

        

お問い合わせ         

  
本ブログのカテゴリ: Bitbucket Mend SCA(旧WhiteSource)
  

アトラシアン製品の導入と活用を
成功させたいなら
リックソフトのサポートが
必要です。

サードパーティ製のアドオンもサポート

サードパーティ製のアドオンもサポート

サポート

アトラシアン社ではサポート範囲外となっているサードパーティ製のアドオンをリックソフトのサポートではサポートします。

  • アトラシアン製品とサードパーティ製のアドオンとの事象の切り分け
  • 海外のアドオンベンダーとのやり取りを代行(日→英/英→日)

リックソフトのサポートは開発元が提供するサポート以上の価値があります。

サポートについて

ツールの活用を促進するアイテム

ツールの活用を促進するアイテム

各種ガイドブック

ツールを導入しただけでは成功とはいえません。利用者が効果を感じていただくことが大切です。独自で制作した各種ガイドブックはツール活用を促進します。

リックソフトからライセンス購入を頂いたお客様にはガイドブックを無料進呈いたします。

ガイドブックについて

価値あるツールの使い方

価値あるツールの使い方

研修・トレーニング

ツール操作の研修だけでなく「ウォータフォール型開発」「アジャイル型開発」のシミュレーション研修も提供。

日本随一の生産性向上にも効果のある研修サービスです。

リックソフトからライセンス購入を頂いたお客様には無料招待や割引特典がございます。

研修について

PAGE TOP