# SonarCloud

SonarCloud: projects, issues, measures, quality gates, rules, hotspots. Exposes **31 actions** covering the API surface an agent needs - read and write.

## What it can do

| Method | What it does |
| --- | --- |
| `sonarcloud_projects_search` | Search projects - GET /projects/search. |
| `sonarcloud_project_create` | Create a project - POST /projects/create. |
| `sonarcloud_project_get` | Get project details - GET /projects/show. |
| `sonarcloud_project_delete` | Delete a project - POST /projects/delete. |
| `sonarcloud_issues_search` | Search issues - GET /issues/search. |
| `sonarcloud_issue_get` | Get issue details - GET /issues/show. |
| `sonarcloud_issue_assign` | Assign an issue - POST /issues/assign. |
| `sonarcloud_issue_transition` | Transition an issue - POST /issues/do_transition. |
| `sonarcloud_issue_comment` | Add a comment to an issue - POST /issues/add_comment. |
| `sonarcloud_issue_comment_update` | Edit a comment - POST /issues/edit_comment. |
| `sonarcloud_issue_comment_delete` | Delete a comment - POST /issues/delete_comment. |
| `sonarcloud_measures_component` | Get component measures - GET /measures/component. |
| `sonarcloud_measures_history` | Get measure history for a component - GET /measures/search_history. |
| `sonarcloud_quality_gates_list` | List quality gates - GET /qualitygates/list. |
| `sonarcloud_quality_gate_get` | Get quality gate details - GET /qualitygates/show. |
| `sonarcloud_quality_gate_project_status` | Get project quality gate status - GET /qualitygates/project_status. |
| `sonarcloud_quality_gate_select` | Select a quality gate for a project - POST /qualitygates/select. |
| `sonarcloud_quality_profiles_list` | List quality profiles - GET /qualityprofiles/search. |
| `sonarcloud_quality_profile_get` | Get quality profile details - GET /qualityprofiles/show. |
| `sonarcloud_rules_search` | Search rules - GET /rules/search. |
| `sonarcloud_rule_get` | Get rule details - GET /rules/show. |
| `sonarcloud_hotspots_search` | Search security hotspots - GET /hotspots/search. |
| `sonarcloud_hotspot_get` | Get hotspot details - GET /hotspots/show. |
| `sonarcloud_hotspot_review` | Set hotspot review status - POST /hotspots/review. |
| `sonarcloud_hotspot_comment` | Add comment to a hotspot - POST /hotspots/add_comment. |
| `sonarcloud_organizations_list` | List organizations - GET /organizations/search. |
| `sonarcloud_organization_get` | Get organization details - GET /organizations/show. |
| `sonarcloud_ce_activity` | List background tasks - GET /ce/activity. |
| `sonarcloud_ce_task` | Get background task details - GET /ce/task. |
| `sonarcloud_metrics_search` | Search available metrics - GET /metrics/search. |
| `sonarcloud_metric_get` | Get metric definition - GET /metrics/show. |

## How to get credentials

This connector uses an **API key / token**. Create one in the provider
dashboard, then paste it into FlyMyAI:

- **`SONARCLOUD_TOKEN`** - SonarCloud - My Account - Security - Generate Tokens. (https://sonarcloud.io/account/security)

## Fields to fill in FlyMyAI

| FlyMyAI field | Where it comes from |
| --- | --- |
| `SONARCLOUD_TOKEN` | SonarCloud - My Account - Security - Generate Tokens. |

## Troubleshooting

- **`401 Unauthorized` / `403 Forbidden`** - the token is wrong, expired, or missing a required scope; regenerate it.
- **`429 Too Many Requests`** - provider rate limit; retry after a short backoff.
- **Unexpected `4xx` on writes** - double-check required fields; the agent confirms before write actions.

## Links

- [SonarCloud API documentation](https://sonarcloud.io/web_api)
