> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudthinker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# SonarQube

> SonarQube を CloudThinker に接続して継続的なコード品質分析、セキュリティスキャン、技術的負債のトラッキングを行う

SonarQube インスタンスを接続して、CloudThinker エージェントがコード品質の分析、セキュリティホットスポットのレビュー、プロジェクト全体の品質ゲートステータスの監視を行えるようにします。CloudThinker は公式の SonarSource MCP サーバーを使用し、**ユーザートークン** で認証します。

***

## 対応プラットフォーム

| プラットフォーム             | サポート      |
| -------------------- | --------- |
| **SonarQube Cloud**  | すべての組織    |
| **SonarQube Server** | 2025.4 以上 |

***

## 前提条件

* **SonarQube Cloud** 組織、またはバージョン 2025.4 以上で動作する **SonarQube Server** インスタンス。
* **My Account → Security → Generate Tokens** から生成した **ユーザートークン**。
* CloudThinker が分析すべきプロジェクトへの **Browse** 権限。

<Info>
  CloudThinker は公式の SonarSource MCP サーバーを使用するため、SonarQube Server 2025.4 以上または SonarQube Cloud が必要です。
</Info>

***

## セットアップ

<Tabs>
  <Tab title="SonarQube Cloud">
    <Steps>
      <Step title="トークンを生成する">
        [SonarQube Cloud](https://sonarcloud.io/) → **My Account → Security → Generate Tokens** に移動します：

        * **Name**: `cloudthinker`
        * **Type**: `User Token`
        * **Expires in**: 適切な期間を設定

        トークンをコピーします — 再表示されません。
      </Step>

      <Step title="組織キーを確認する">
        **My Organizations** に移動し、URL から組織キーを確認します：

        ```
        https://sonarcloud.io/organizations/YOUR_ORG_KEY
        ```
      </Step>

      <Step title="CloudThinker に接続を追加する">
        **Connections → SonarQube** に移動し、以下を入力します：

        * **Token**: 生成したトークン
        * **Deployment Type**: **SonarQube Cloud** を選択
        * **Organization**: 組織キー

        **Connect** をクリックします。CloudThinker が認証情報を検証し、**Connected** ステータスを表示します。
      </Step>
    </Steps>
  </Tab>

  <Tab title="SonarQube Server（セルフホスト）">
    <Steps>
      <Step title="トークンを生成する">
        SonarQube インスタンス → **My Account → Security → Generate Tokens** に移動します：

        * **Name**: `cloudthinker`
        * **Type**: `User Token`
        * **Expires in**: 適切な期間を設定

        トークンをコピーします — 再表示されません。
      </Step>

      <Step title="サーバー URL を確認する">
        SonarQube Server の URL はインスタンスのアドレスです（例：`https://sonarqube.your-domain.com`）。
      </Step>

      <Step title="CloudThinker に接続を追加する">
        **Connections → SonarQube** に移動し、以下を入力します：

        * **Token**: 生成したトークン
        * **Deployment Type**: **SonarQube Server** を選択
        * **Server URL**: SonarQube インスタンスの URL

        **Connect** をクリックします。CloudThinker が認証情報を検証し、**Connected** ステータスを表示します。
      </Step>
    </Steps>
  </Tab>
</Tabs>

<Warning>
  生成直後にトークンをコピーしてください。SonarQube は再表示しないため、紛失した場合は新しいトークンを作成する必要があります。
</Warning>

***

## 接続の詳細

| フィールド                           | 説明                        | 例                                   |
| ------------------------------- | ------------------------- | ----------------------------------- |
| **SONARQUBE\_TOKEN**            | 認証用ユーザートークン               | `squ_xxxxx...`                      |
| **SONARQUBE\_DEPLOYMENT\_TYPE** | `cloud` または `self_hosted` | `cloud`                             |
| **SONARQUBE\_ORG**              | 組織キー（Cloud のみ）            | `my-org`                            |
| **SONARQUBE\_URL**              | サーバー URL（セルフホストのみ）        | `https://sonarqube.your-domain.com` |

***

## 必要な権限

* CloudThinker が分析するプロジェクトへの **Browse** 権限
* スキャンをトリガーするための **Execute Analysis** 権限

<Tip>
  最小権限の原則に従い、読み取り専用の分析には Browse 権限で十分です。CloudThinker が品質ゲートを管理したり新しいプロジェクトをオンボードする必要がある場合のみ、Administer と Create Projects を追加してください。
</Tip>

***

## エージェントの機能

接続後、エージェントは SonarQube プロジェクト全体のコード品質データを照会できます。

| 機能                | 説明                          |
| ----------------- | --------------------------- |
| **プロジェクトの参照**     | 組織内のすべてのプロジェクトを一覧表示・確認する    |
| **問題分析**          | バグ、脆弱性、コードスメルを取得して分類する      |
| **品質ゲート**         | プロジェクト全体の品質ゲートのステータスを確認する   |
| **セキュリティホットスポット** | セキュリティホットスポットをレビューして優先度を付ける |
| **コード重複**         | コード重複のメトリクスを分析する            |
| **コードメトリクス**      | カバレッジ、複雑度、保守性評価を確認する        |

### 接続を確認する

```text theme={null}
@oliver list all SonarQube projects and report quality gate statuses
```

### プロンプト例

```text theme={null}
@oliver analyze code quality metrics across all projects and #report quality gate statuses
@oliver review all security hotspots and categorize them by risk level
@oliver list all blocker and critical severity issues broken down by type
```

***

## トラブルシューティング

<Accordion title="認証に失敗した">
  トークンが正しくないか、期限切れか、または失効しています。トークンタイプが `User Token` であることを確認し、必要であれば新しいトークンを生成して接続を更新してください。
</Accordion>

<Accordion title="組織が見つからない（Cloud）">
  組織キーが正しくないか、アカウントがその組織のメンバーではありません。SonarQube Cloud の **My Organizations** でキーを確認し、メンバーシップを確認してください。
</Accordion>

<Accordion title="サーバーに到達できない（セルフホスト）">
  SonarQube の URL が間違っているか、CloudThinker からインスタンスに到達できません。URL を確認し、ファイアウォールルールを確認し、SonarQube サービスが稼働しているか確認してください。
</Accordion>

<Accordion title="プロジェクトが表示されない">
  トークンの所有者がプロジェクトへの Browse 権限を持っていません。プロジェクトの可視性設定（パブリックかプライベートか）を確認し、CloudThinker が分析すべきプロジェクトに Browse 権限を付与してください。
</Accordion>

***

## セキュリティ

* **最小権限** — エージェントがユースケースに必要な権限のみを付与します。まず読み取り専用から始め、後から拡張してください。
* **デフォルトで読み取り専用** — エージェントにこの接続で変更を行わせる場合を除き、読み取り専用の認証情報を使用してください。
* **認証情報のローテーション** — 通常のスケジュールに従ってキーとトークンをローテーションしてください。接続を更新すると、CloudThinker が新しい値を自動的に取得します。
* **オフボーディング時に失効** — 接続を削除するか、チームメンバーが退職する際には、プロバイダー側で認証情報を無効化してください。

- **HTTPS のみ** — セルフホストインスタンスでは常に HTTPS を使用して、転送中のトークンを保護してください。
- **ユーザートークンタイプ** — グローバル分析トークンではなく `User Token` を使用して、CloudThinker が必要とする範囲にトークンのスコープを制限してください。

***

## 関連

<CardGroup cols={2}>
  <Card title="Elasticsearch 接続" icon="https://mintcdn.com/cloudthinker/aLd-ttc-SCW-aFky/images/icons/elasticsearch.svg?fit=max&auto=format&n=aLd-ttc-SCW-aFky&q=85&s=c7389cfcd0bc8d303aeeb68bd19199ca" href="/ja/guide/connections/elasticsearch" width="24" height="24" data-path="images/icons/elasticsearch.svg">
    コード品質ログを検索する
  </Card>

  <Card title="Grafana 接続" icon="https://mintcdn.com/cloudthinker/aLd-ttc-SCW-aFky/images/icons/grafana.svg?fit=max&auto=format&n=aLd-ttc-SCW-aFky&q=85&s=c1329049025cd3c3a0909b400baef7be" href="/ja/guide/connections/grafana" width="24" height="24" data-path="images/icons/grafana.svg">
    コード品質メトリクスを可視化する
  </Card>
</CardGroup>
