こんにちは。デジタルイノベーション推進室の戦闘員Oです。
前回「SonarQube ServerをAWSで構築」で構築したSonarQube Serverを使いまして、
SonarQube IDEからSonarQube Serverに接続します。
前回同様、「企業がSonarQubeをお試し利用する構成」を想定しておりますので、ユーザー追加や権限設定についても説明します。

目次

  1. 今回のゴール:SonarQube IDEからServerに接続
  2. グループの作成・権限設定
  3. ユーザーの作成
  4. プロジェクトの作成・権限設定
  5. SonarQube IDEのインストール
  6. SonarQube Serverの接続
  7. さいごに

1. 今回のゴール:SonarQube IDEからServerに接続

SonarQubeを企業がお試し利用することを考え、上記の構成にしました。

  • 権限設定を行い、SonarQube IDEからSonarQube Serverに接続します。
  • ユーザーやプロジェクトの作成、権限設定は、adminユーザーで行います。
  • IDEはVSCodeを利用します。

 

SonarQubeについては以下のブログをご参照ください。

 

SonarQube Serverの構築については、前回のブログをご参照ください。

2. グループの作成・権限設定

  • SonarQube Serverログイン
    最初は、adminでログインします。
    初期のパスワードはadminになります。 
  • グループの作成
    ログイン後、画面上部の“Administration“>“Security“>”Groups”に進んでください。

“Create Group”に進んでいただき、グループを作成します。
(例としてTeamXXXとTeamYYYを作成します。)

  • グループの権限設定
    画面上部の“Administration“>“Security“>” Global Permissions”に進んでください。
    TeamXXX、TeamYYYともに最初は権限が付与されていませんので、適宜チェックし、権限付与してください。ちなみに確定ボタン等はありません。

Administer System

この権限を持つユーザーは、SonarQubeサーバー全体の設定や管理を行うことができます。具体的には、以下のような操作が含まれます。

  • プラグインのインストールやアンインストール
  • サーバーの設定パラメータの変更
  • ユーザーやグループの管理
  • その他、システム全体に影響を及ぼす設定の調整

Administer の
Quality Gates

Quality Gatesは、プロジェクトが合格基準を満たしているかどうかを評価するためのルールセットです。「Administer のQuality Gates」権限を持つユーザーは、新しいQuality Gatesの作成、既存のものを更新したり削除したりすることができます。また、どのQuality Gatesがプロジェクトに適用されるかを設定する権限も持っています。

Administer の
Quality Profiles

Quality Profilesは、コードの静的分析に使用されるルールの集まりです。この権限を持つことで、ユーザーはQuality Profilesを作成、変更、削除することができます。これにより、プロジェクトや組織に特化したカスタム分析ルールを定義し、プロジェクトごとの品質基準を強化することができます。

Execute Analysis

この権限を持つユーザーは、SonarQubeサーバーに対してソースコードの静的解析を実行することができます。具体的には、CI/CDパイプラインからまたは手動で課題を解析し、分析結果をSonarQubeにアップロードすることができます。この権限は、実際にコード分析を行う開発者やチームにとって非常に重要です。

Create の
Project

この権限を持つユーザーは、新規プロジェクトをSonarQubeに登録することができます。プロジェクトを作成することで、そのプロジェクトに対して静的解析を実施し、コードの品質を評価することができるようになります。この権限は、新しいプロジェクトを開始したり、既存プロジェクトを管理するために必要です。

3. ユーザーの作成

  • ユーザーの作成
    画面上部の“Administration“>“Security“>” Users”に進んでください。
    “Create User”からユーザー作成ができます。
  • ユーザーをグループに所属させる
    画面上部の“Administration“>“Security“>” Groups”に進んでください。
    作成したユーザーは、初期状態では”sonar-users”グループに所属しています。

“所属させるグループの鉛筆マーク”>”Unselected”からグループに追加するユーザーを選択できます。

4. プロジェクトの作成・権限設定

SonarQube Serverにプロジェクトを作成し、権限設定を行います。
 

  • プロジェクトの作成
    上部のProjectタブから新規プロジェクトを作成できます。
    Azure DevOps, Bitbucket Cloud, Bitbucket Server, GitHub, GitLab
    から選べますので適宜ソースコード管理ツールの設定を行います。

   GitHubの場合は以下が必要です。 

設定値

設定内容

Configuration name

任意の名前

GitHub API URL

GitHub Enterprise の例: 

https://github.company.com/api/v3 

 

GitHub.com を使用する場合: 

https://api.github.com/

GitHub App ID

GitHubのGitHub Appのページの「設定 > 開発者設定 > GitHub Apps」

Client ID

Client Secret

Private Key

GitHub Appのページの「Private keys」から.pemファイルを生成し、中身を貼り付ける。

Webhook Secret

※GitHub Code Scanning Alert機能を使用しない限り、このフィールドは空のままにしてください。

  • プロジェクトの権限設定
    画面上部の“Administration”>”Project”>対象プロジェクトの”Edit Permissions”の順に進みます。

  作成したグループと権限のマトリクスが出ますので、チェックをします。

Administer Issues

問題を「修正済み」、「承認済み」、「誤検知」のいずれかに解決し、問題の重大度を変更します。非公開プロジェクトの場合、ユーザーには「参照」権限も必要です。

Administer Security Hotspots

セキュリティ ホットスポットをレビュー済み (修正済みまたは安全) として解決し、レビュー対象としてリセットします (プライベート プロジェクトの場合、ユーザーには「参照」権限も必要です)。

Administer

プロジェクト設定にアクセスし、管理タスクを実行します (プライベート プロジェクトの場合、ユーザーには「参照」権限も必要です)。

Execute Analysis

分析を実行するために必要なすべての設定 (パスワードなどのセキュリティ保護された設定を含む) を取得し、分析結果を SonarQube サーバーにプッシュする機能。

5. SonarQube IDEのインストール

Visual Studio、VS Code、Eclipseいずれもインストールできますが、本記事ではVS CodeにSonarQubeの拡張機能をインストールします。
 

  • SonarQube IDEをインストール
    VS Codeの拡張から”Sonar”を検索し、“SonarQube for IDE”をインストールします。

6. SonarQube Serverの接続

SonarQube Serverで作成したユーザーを利用し、SonarQube IDEからSonarQube Serverへの接続設定を行います。

 

  • SonarQube Serverの接続設定1
    VS Codeの拡張の下に追加された“SonarQube”を選択いただくと
    “Connect to SonarQube Server”
    “Connect to SonarQube Cloud”
    とありますので、今回は“Connect to SonarQube Server”を選択します。
  • SonarQube Serverの接続設定2
    Server URLにSonarQube ServerのURLを設定いただき、”Generate Token”をクリックしてください。

  SonarQube Serverに作成いただいたユーザでログイン後、以下の画面でTokenを取得できます。

 

以上で、SonarQube IDEからSonarQube Serverに接続できました。

7. さいごに

SonarQube IDE プラグインを使用して SonarQube Serverに接続することで、以下のような機能や利点があります。
 

  1. リアルタイムのコード分析: IDE内でのコードの品質をリアルタイムでチェックし、問題を即座に特定できます。これにより、開発中のコードの品質を向上させることができます。
  2. 問題の即時修正: コードに潜むバグやコーディング規約違反を、プラグインが警告するため、すぐに修正することができます。これにより、後で大規模なリファクタリングを行う必要がなくなります。
  3. メトリクスの可視化: コードの品質メトリクス(コードカバレッジ、技術的負債、複雑さなど)を視覚的に確認でき、開発の進捗や健康状態を把握しやすくなります。
  4. コードレビューの支援: チームメンバーと共有できる共通の品質基準を持つことで、コードレビューが効率的に行えるようになります。
  5. カスタムルールの適用: SonarQubeで設定された独自のコーディングルールがIDE内で反映されるため、チーム内で合意されたコーディング基準を守りやすくなります。
  6. サーバーとの連携: 組織全体のコード品質データを集約し、SonarQube Serverで分析・報告を行うことができ、プロジェクト全体の健康状態を把握できます。
  7. 問題のトラッキング: コードの問題をSonarQube Serverでトラッキングできるため、問題が修正されたかどうかを簡単に確認できます。

 

引き続きSonarQube IDE , SonarQube Serverの使い方について解説ブログをアップします。
“セキュリティチェックしてくれる仕組み“をどんどん活用して、効率的に堅牢なシステムを作りましょう。