[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:
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]
# 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)
1---2name: sonarcloud-tools-23description: 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.4---5
6# [H1][SONARCLOUD-TOOLS]
7>**Dictum:** *Zero-arg defaults enable immediate code quality inspection.*
8
9<br>
10
11Execute SonarCloud queries through unified Python CLI.
12
13[IMPORTANT] Commands default to `project=bsamiee_Parametric_Portal`, `organization=bsamiee`. 1Password auto-injects API token. SonarCloud API base: `https://sonarcloud.io/api`.
14
15---
16## [0][SCANNER]
17>**Dictum:** *Local scanner enables pre-push quality gates.*
18
19<br>
20
21**Run Analysis:**
22```bash
23pnpm sonar
24```
25
26**Requirements:**
27- `SONAR_TOKEN` environment variable (1Password injection or export)<br>
28- Coverage reports at `packages/*/coverage/lcov.info` (run `nx run-many -t test` first)
29
30**Configuration:** `sonar-project.properties` at repo root.
31
32---
33## [1][COMMANDS]
34
35| [CMD] | [ARGS] | [PURPOSE] |
36| ------------ | ------------------------ | ----------------------------- |
37| quality-gate | `[branch]` or `pr <num>` | Quality gate pass/fail status |
38| issues | `[severities] [types]` | Search code issues |
39| measures | `[metrics]` | Project metrics |
40| analyses | `[page_size]` | Analysis history |
41| projects | `[page_size]` | List organization projects |
42| hotspots | `[status]` | Security hotspots |
43
44---
45## [2][USAGE]
46
47```bash
48# Zero-arg invocation (most common)
49uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py quality-gate
50uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py issues
51uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py measures
52uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py analyses
53uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py projects
54uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py hotspots
55
56# With optional args
57uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py quality-gate main
58uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py quality-gate pr 42
59uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py issues BLOCKER,CRITICAL
60uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py issues BLOCKER,CRITICAL BUG,VULNERABILITY
61uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py measures coverage,bugs
62uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py analyses 20
63uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py projects 50
64uv run .claude/skills/sonarcloud-tools/scripts/sonarcloud.py hotspots TO_REVIEW
65```
66
67---
68## [3][ARGUMENTS]
69
70**quality-gate**: `[branch]` or `pr <num>`
71- No args -- current default branch
72- `main` -- specific branch
73- `pr 42` -- specific pull request
74
75**issues**: `[severities] [types]`
76- `severities` -- Comma-separated: `BLOCKER`, `CRITICAL`, `MAJOR`, `MINOR`, `INFO`
77- `types` -- Comma-separated: `BUG`, `VULNERABILITY`, `CODE_SMELL`
78
79**measures**: `[metrics]`
80- `metrics` -- Comma-separated (default: all standard metrics)
81- Standard: `ncloc`, `coverage`, `bugs`, `vulnerabilities`, `code_smells`, `duplicated_lines_density`, `security_hotspots`, `reliability_rating`, `security_rating`, `sqale_rating`
82
83**analyses**: `[page_size]`
84- `page_size` -- Number of results (default: `10`, max: `100`)
85
86**projects**: `[page_size]`
87- `page_size` -- Number of results (default: `100`, max: `500`)
88
89**hotspots**: `[status]`
90- `status` -- Filter: `TO_REVIEW`, `ACKNOWLEDGED`, `FIXED`, `SAFE`
91
92---
93## [4][OUTPUT]
94
95Commands return: `{"status": "success|error", ...}`.
96
97| [INDEX] | [CMD] | [RESPONSE] |
98| :-----: | -------------- | ---------------------------------------------------- |
99| [1] | `quality-gate` | `{project, gate_status, passed: bool, conditions[]}` |
100| [2] | `issues` | `{project, total, issues[], summary}` |
101| [3] | `measures` | `{project, name, metrics}` |
102| [4] | `analyses` | `{project, total, analyses[]}` |
103| [5] | `projects` | `{organization, total, projects[]}` |
104| [6] | `hotspots` | `{project, total, hotspots[]}` |
105
106---
107## [5][ENVIRONMENT]
108
109| [VAR] | [REQUIRED] | [DESCRIPTION] |
110| ------------- | ---------- | -------------------------------- |
111| `SONAR_TOKEN` | Yes | SonarCloud API token (1Password) |
112
113---
114## [6][ERROR_HANDLING]
115
116- HTTP errors print `[ERROR] <status>: <body>` and exit 1
117- Missing token: `[ERROR] SONAR_TOKEN environment variable not set`
118- Project not found: `[ERROR] 404: Component not found`
119- Invalid metric name: returns empty metric value (not an error)