mcpField
S
sonarqube

sonarqube

github.com/claude-dev-suiteテスト・品質46104 回インストール2 日前に更新
リポジトリ

sonarqube について

SonarQube と SonarCloud によるコード分析を扱うスキルです。スキャンや品質ゲートを設定する開発チーム向けに、CI 連携、指標、ファイル除外、トラブルシューティングをまとめています。

主な機能

  1. 01SonarCloud と SonarQube の設定
  2. 02品質ゲート条件の設定
  3. 03GitHub Actions と Maven の連携
  4. 04バグ、脆弱性、コードスメルの確認
  5. 05カバレッジとファイル除外の設定

活用シーン

  1. 01プルリクエストで品質ゲートを確認
  2. 02CI パイプラインへのコード分析追加
  3. 03カバレッジレポート未認識の調査
  4. 04既存プロジェクトの問題を段階的に修正

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/claude-dev-suite/claude-dev-suite --skill sonarqube

インストール後、Claude Code で/sonarqubeを入力して読み込まれたか確認します。

詳細

SonarQube / SonarCloud

このスキルを使用しない場合

  • JavaScript/TypeScript のリント - より速くフィードバックを得るには、eslint-biome スキルを使用してください
  • セキュリティスキャン - owasp-top-10 または security-scanner MCP を使用してください
  • テストの実行 - テストを実行するには、Vitest/Playwright スキルを使用してください
  • コードカバレッジの生成 - カバレッジには、JaCoCo/Vitest スキルを使用してください

詳細な知識:包括的なドキュメントを参照するには、technology に sonarqube を指定して mcp__documentation__fetch_docs を使用してください。

公式ドキュメント

リソースリンク
SonarQube ドキュメントhttps://docs.sonarsource.com/sonarqube/latest/
SonarCloud ドキュメントhttps://docs.sonarsource.com/sonarcloud/
ルールリポジトリhttps://rules.sonarsource.com/
API リファレンスhttps://sonarcloud.io/web_api/

クイックセットアップ

SonarCloud(オープンソースにおすすめ)
# 1. Connect repo at sonarcloud.io
# 2. Create sonar-project.properties
# sonar-project.properties
sonar.projectKey=org_project
sonar.organization=your-org
sonar.sources=src
sonar.tests=tests
sonar.javascript.lcov.reportPaths=coverage/lcov.info
sonar.coverage.exclusions=**/*.test.ts,**/*.spec.ts
SonarQube(セルフホスト)
# docker-compose.yml
services:
  sonarqube:
    image: sonarqube:lts-community
    ports:
      - "9000:9000"
    environment:
      - SONAR_JDBC_URL=jdbc:postgresql://db:5432/sonar
    volumes:
      - sonarqube_data:/opt/sonarqube/data

品質ゲート

デフォルトの品質ゲート条件
メトリクス条件目標
カバレッジ新規コード≥ 80%
重複行新規コード≤ 3%
保守性評価新規コードA
信頼性評価新規コードA
セキュリティ評価新規コードA
セキュリティホットスポットのレビュー新規コード100%
カスタム品質ゲート
# Create via API
curl -X POST "https://sonarcloud.io/api/qualitygates/create" \
  -H "Authorization: Bearer $SONAR_TOKEN" \
  -d "name=Strict"

CI/CD 統合

GitHub Actions
# .github/workflows/sonar.yml
name: SonarCloud
on: [push, pull_request]

jobs:
  sonarcloud:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: SonarCloud Scan
        uses: SonarSource/sonarcloud-github-action@master
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
Maven(Java)

<plugin>
    <groupId>org.sonarsource.scanner.maven</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>3.10.0.2594</version>
</plugin>
mvn sonar:sonar \
  -Dsonar.projectKey=project \
  -Dsonar.host.url=https://sonarcloud.io \
  -Dsonar.token=$SONAR_TOKEN

主なメトリクス

メトリクス説明良好な値
バグ信頼性の問題0
脆弱性セキュリティの問題0
コードスメル保守性の問題最小限にする
カバレッジテストカバレッジ %> 80%
重複重複コード %< 3%
認知的複雑度コードの理解しやすさ< 15/関数

言語固有のルール

言語ルールリンク
JavaScript/TS422https://rules.sonarsource.com/javascript/
Java733https://rules.sonarsource.com/java/
Python300+https://rules.sonarsource.com/python/
C#400+https://rules.sonarsource.com/csharp/
Go100+https://rules.sonarsource.com/go/

ファイルの除外

# sonar-project.properties
sonar.exclusions=**/node_modules/**,**/dist/**,**/*.test.ts
sonar.coverage.exclusions=**/tests/**,**/__mocks__/**
sonar.cpd.exclusions=**/generated/**

API の例

# Get project status
curl "https://sonarcloud.io/api/qualitygates/project_status?projectKey=KEY" \
  -H "Authorization: Bearer $SONAR_TOKEN"

# Get issues
curl "https://sonarcloud.io/api/issues/search?componentKeys=KEY&types=BUG" \
  -H "Authorization: Bearer $SONAR_TOKEN"

# Get metrics
curl "https://sonarcloud.io/api/measures/component?component=KEY&metricKeys=coverage,bugs,vulnerabilities" \
  -H "Authorization: Bearer $SONAR_TOKEN"

アンチパターン

アンチパターン問題点正しいアプローチ
PR に品質ゲートがない問題のあるコードがマージされるPR デコレーションを有効にし、失敗時にブロックする
すべてのテストをカバレッジ対象から除外するカバレッジ数値が実態より高くなるテストユーティリティのみを除外する
コードスメルを無視する技術的負債が蓄積する修正するか、コメントで理由を説明する
カバレッジレポートがない品質の傾向を追跡できないCI でカバレッジレポートを設定する
デフォルトの品質ゲートを使用するほとんどのプロジェクトには基準が緩すぎるより厳しいカスタムゲートを作成する
セキュリティホットスポットをレビューしない脆弱性を見逃す可能性があるリリース前にすべてのホットスポットをレビューする

トラブルシューティング

問題考えられる原因解決策
品質ゲートが予期せず失敗した新規コードのカバレッジが 80% 未満テストを追加するか、カバレッジ目標を調整する
分析が実行されないSONAR_TOKEN がないCI のシークレットにトークンを追加する
カバレッジが常に 0%レポートパスが間違っているsonar.javascript.lcov.reportPaths を確認する
重複コードの誤検知定型コードsonar.cpd.exclusions に追加する
報告される問題が多すぎるレガシーコードに対する初回スキャン「新規コード」に焦点を当て、段階的に修正する
PR デコレーションが機能しないGitHub App の連携がないSonarCloud GitHub App を設定する

関連スキル

コメント