Agent skill

sonarcloud-tools

Executes SonarCloud API operations for quality gates, issues, metrics, analysis history, and security hotspots. Use when checking code quality, inspecting bugs/vulnerabilities, retrieving coverage/complexity metrics, or viewing project security status.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/sonarcloud-tools

SKILL.md

[H1][SONARCLOUD-TOOLS]

Dictum: Zero-arg defaults enable immediate code quality inspection.

Execute SonarCloud queries through unified Python CLI.

[IMPORTANT] Commands default to project=bsamiee_Parametric_Portal, organization=bsamiee. 1Password auto-injects API token. SonarCloud API base: https://sonarcloud.io/api.


[0][SCANNER]

Dictum: Local scanner enables pre-push quality gates.

Run Analysis:

bash
pnpm sonar

Requirements:

  • SONAR_TOKEN environment variable (1Password injection or export)
  • Coverage reports at packages/*/coverage/lcov.info (run nx run-many -t test first)

Configuration: sonar-project.properties at repo root.


[1][COMMANDS]

[CMD] [ARGS] [PURPOSE]
quality-gate [branch] or pr <num> Quality gate pass/fail status
issues [severities] [types] Search code issues
measures [metrics] Project metrics
analyses [page_size] Analysis history
projects [page_size] List organization projects
hotspots [status] Security hotspots

[2][USAGE]

bash
# Zero-arg invocation (most common)
uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py quality-gate
uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py issues
uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py measures
uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py analyses
uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py projects
uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py hotspots

# With optional args
uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py quality-gate main
uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py quality-gate pr 42
uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py issues BLOCKER,CRITICAL
uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py issues BLOCKER,CRITICAL BUG,VULNERABILITY
uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py measures coverage,bugs
uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py analyses 20
uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py projects 50
uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py hotspots TO_REVIEW

[3][ARGUMENTS]

quality-gate: [branch] or pr <num>

  • No args -- current default branch
  • main -- specific branch
  • pr 42 -- specific pull request

issues: [severities] [types]

  • severities -- Comma-separated: BLOCKER, CRITICAL, MAJOR, MINOR, INFO
  • types -- Comma-separated: BUG, VULNERABILITY, CODE_SMELL

measures: [metrics]

  • metrics -- Comma-separated (default: all standard metrics)
  • Standard: ncloc, coverage, bugs, vulnerabilities, code_smells, duplicated_lines_density, security_hotspots, reliability_rating, security_rating, sqale_rating

analyses: [page_size]

  • page_size -- Number of results (default: 10, max: 100)

projects: [page_size]

  • page_size -- Number of results (default: 100, max: 500)

hotspots: [status]

  • status -- Filter: TO_REVIEW, ACKNOWLEDGED, FIXED, SAFE

[4][OUTPUT]

Commands return: {"status": "success|error", ...}.

[INDEX] [CMD] [RESPONSE]
[1] quality-gate {project, gate_status, passed: bool, conditions[]}
[2] issues {project, total, issues[], summary}
[3] measures {project, name, metrics}
[4] analyses {project, total, analyses[]}
[5] projects {organization, total, projects[]}
[6] hotspots {project, total, hotspots[]}

[5][ENVIRONMENT]

[VAR] [REQUIRED] [DESCRIPTION]
SONAR_TOKEN Yes SonarCloud API token (1Password)

[6][ERROR_HANDLING]

  • HTTP errors print [ERROR] <status>: <body> and exit 1
  • Missing token: [ERROR] SONAR_TOKEN environment variable not set
  • Project not found: [ERROR] 404: Component not found
  • Invalid metric name: returns empty metric value (not an error)

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results