Skip to content

MinoruSoga/SonarQube-local

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

SonarQube Server

複数プロジェクトで共有するSonarQubeサーバー

サーバー管理

cd ~/dev/SonarQube

make up       # 起動
make down     # 停止
make status   # 状態確認
make logs     # ログ表示
make clean    # 完全削除(データも消える)

URL: http://localhost:9000 初回ログイン: admin / admin


新しいプロジェクトで使う手順

1. SonarQubeでプロジェクトを作成

  1. http://localhost:9000 を開く
  2. Projects → Create Project → Manually
  3. Project key を設定(例: my-project
  4. Set Up をクリック

2. トークンを生成

  1. 右上アイコン → My Account → Security
  2. Generate Tokens でトークンを作成
  3. トークンをコピー

3. プロジェクトに設定ファイルを追加

.env.local に追加:

SONAR_TOKEN="生成したトークン"

sonar-project.properties を作成:

sonar.projectKey=my-project
sonar.host.url=http://localhost:9000

sonar.sources=src
sonar.exclusions=**/node_modules/**,**/*.test.ts,**/*.test.tsx

sonar.sourceEncoding=UTF-8

4. Makefileにコマンドを追加

sonar: ## SonarQubeでコード分析を実行
	@echo "SonarQubeでコード分析を実行します..."
	$(eval SONAR_TOKEN_VAL := $(shell grep '^SONAR_TOKEN=' .env.local 2>/dev/null | cut -d'=' -f2 | tr -d '"'))
	@if [ -z "$(SONAR_TOKEN_VAL)" ]; then \
		echo "SONAR_TOKEN が設定されていません"; \
		echo ".env.local の SONAR_TOKEN を設定してください"; \
		exit 1; \
	fi
	@if ! curl -s http://localhost:9000/api/system/status | grep -q '"status":"UP"'; then \
		echo "SonarQubeサーバーが起動していません"; \
		echo "起動方法: cd ~/dev/SonarQube && make up"; \
		exit 1; \
	fi
	docker run --rm \
		-v "$$(pwd):/usr/src" \
		--network host \
		-e SONAR_TOKEN=$(SONAR_TOKEN_VAL) \
		sonarsource/sonar-scanner-cli:latest
	@echo "分析完了!結果: http://localhost:9000/dashboard?id=my-project"

5. 実行

make sonar

注意事項

  • サーバーは make down で停止してもデータは保持される
  • make clean を実行するとプロジェクト設定も全て削除される
  • トークンは .env.local に保存し、Git にコミットしないこと

Claude Code との連携(MCP)

SonarQube MCP サーバーを使うと、Claude Code から直接 SonarQube の問題を取得・修正できます。

プロジェクトの .mcp.json に追加

{
  "mcpServers": {
    "sonarqube": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "SONARQUBE_TOKEN",
        "-e", "SONARQUBE_URL",
        "mcp/sonarqube"
      ],
      "env": {
        "SONARQUBE_TOKEN": "${SONAR_TOKEN}",
        "SONARQUBE_URL": "http://host.docker.internal:9000"
      }
    }
  }
}

Docker イメージの取得

docker pull mcp/sonarqube

重要: プロジェクトMCPサーバーの有効化

.mcp.json に追加しただけではサーバーは有効になりません。 以下のコマンドで ~/.claude.json に有効化設定を追加してください:

python3 << 'EOF'
import json
import os

config_path = os.path.expanduser('~/.claude.json')
project_path = os.getcwd()

with open(config_path, 'r') as f:
    data = json.load(f)

if project_path not in data.get('projects', {}):
    data['projects'][project_path] = {}

data['projects'][project_path]['enabledMcpjsonServers'] = ['sonarqube']
data['projects'][project_path]['disabledMcpjsonServers'] = []

with open(config_path, 'w') as f:
    json.dump(data, f, indent=2)

print(f'✅ sonarqube MCP enabled for {project_path}')
EOF

その後、Claude Code を再起動すると /mcp で sonarqube が表示されます。

使い方

Claude Code を再起動後、以下のように依頼できます:

「SonarQubeの問題を取得して修正してください」
「jewelry-stock プロジェクトのセキュリティ問題を確認して」
「MAJORの問題だけ修正してください」

利用可能なツール

ツール 説明
get_issues 問題一覧を取得
get_metrics コードメトリクスを取得
get_hotspots セキュリティホットスポット
get_quality_gate 品質ゲートの状態

参考

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors