2020年06月22日
Bitbucket Code Insights は、コードレビューの質とスピードに貢献します奥村 和彦 Kazuhiko Okumura
こんにちは
今日は、ソースコードのバージョン管理をされている方で以下のような課題をお持ちの方に、ご紹介したい機能があります。
このようなコードレビュー効率化やコードの品質向上に課題を持っている方にお薦めしたいのが、アトラシアン製品の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 の使い方を見ていきましょう。
先に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ライブラリを検査します。
WhiteSource for Bitbucket Serverは、Dockerファイルで提供されます。
標準設定で使う場合には、提供されるdockerfileを使って、Dockerイメージ作成し、Dockerコンテナの立ち上げして起動することで利用できます。
初期設定としてWhiteSourceでスキャンを行うリポジトリを選択します。
選択したリポジトリに対して、WhiteSource for Bitbucket Serverから初期設定のためのプルリクエストが申請されますので、承認してmasterブランチにマージします。
マージが完了すると、リポジトリのファイル一覧画面に直近の検査結果のサマリが表示されるようになります。
あとはいつも通り、ローカルで修正したブランチをリモートリポジトリにプッシュすると、自動的にOSSの脆弱性検査を実行します。
この検査はBitbucket上では「ビルド」として扱われ、コミットごとに結果レポートを閲覧することができます。
そして、プルリクエストを行うと該当するコミットに紐づく検査レポートをCode Insightsレポートとして確認することができます。
画面では右上の方の"WhiteSource Security"をクリックすることで、品質レポートを表示します。
例えば画面の例ですと、利用しているOSSライブラリに脆弱性が発見されており「失敗」と表示されています。
このようにして、プルリクエストでコードレビューを行う前に、静的解析結果を一通り確認することができます。
このようにCode Insightsの品質レポートを使うことで、コードレビューの時間を有効的に利用できることがお分かりいただけますでしょうか?
今回は、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をせひご利用してみてください。
本情報はブログを公開した時点の情報となります。本情報に記載した製品、サービスについて仕様や提供方法などが変更になる場合があります。
本情報に記載した会社名・製品名・サービス名は、各社の商標または登録商標です。
ご不明な点はお問い合わせください。
« 【連携してみた】Workato(ワーカート)使ってkintoneとSlaesforce(セールスフォース)を連携してみた(2020年06月22日)
(2020年06月26日)ちょっと気になるアプリ(アドオン)シリーズ: Planyway(Trello Power-upツール) »
アトラシアン社ではサポート範囲外となっているサードパーティ製のアドオンをリックソフトのサポートではサポートします。
リックソフトのサポートは開発元が提供するサポート以上の価値があります。
ツールを導入しただけでは成功とはいえません。利用者が効果を感じていただくことが大切です。独自で制作した各種ガイドブックはツール活用を促進します。
リックソフトからライセンス購入を頂いたお客様にはガイドブックを無料進呈いたします。
ツール操作の研修だけでなく「ウォータフォール型開発」「アジャイル型開発」のシミュレーション研修も提供。
日本随一の生産性向上にも効果のある研修サービスです。
リックソフトからライセンス購入を頂いたお客様には無料招待や割引特典がございます。