acamposm / atlas-sonarqube-connector
A PHP connector for the SonarQube API.
Package info
github.com/angelcamposm/atlas-sonarqube-connector
pkg:composer/acamposm/atlas-sonarqube-connector
dev-master
2026-05-03 21:21 UTC
Requires
- php: ^8.5
- guzzlehttp/guzzle: ^7.8
Requires (Dev)
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.0
- symfony/polyfill-mbstring: ^1.37
This package is auto-updated.
Last update: 2026-05-03 21:33:33 UTC
README
A modern, resource-based PHP connector for the SonarQube API. Supports both stable v1 and emerging v2 endpoints.
Features
- Resource-Based Architecture: Organized and scalable API interaction.
- PHP 8.5+ Support: Leverages modern features like Property Hooks.
- Dual API Support: Seamlessly handles both SonarQube API v1 and v2.
- Fully Tested: 100% code coverage.
- Static Analysis: Verified with PHPStan Level 5+.
Installation
You can install the package via composer:
composer require acamposm/atlas-sonarqube-connector
Usage
use Atlas\Connectors\SonarQube\Enums\Metric; use Atlas\Connectors\SonarQube\Exceptions\ApiException; use Atlas\Connectors\SonarQube\Exceptions\AuthenticationException; use Atlas\Connectors\SonarQube\Exceptions\SonarQubeException; use Atlas\Connectors\SonarQube\SonarQubeClient; // Initialize the client $client = new SonarQubeClient('https://sonarqube.example.com', 'your-api-token'); // Access system health (API v2) $health = $client->system()->getHealth(); // Search for projects (API v1) $projects = $client->projects()->search(['q' => 'my-project']); // Get project metrics (API v1) using strings or Enums try { $metrics = $client->measures()->getComponentMeasures('my-project-key', [ Metric::NCLOC, Metric::COVERAGE, 'bugs' ]); } catch (AuthenticationException $e) { echo "Invalid API token: " . $e->getMessage(); } catch (ApiException $e) { echo "API Error ({$e->getCode()}): " . $e->getMessage(); } catch (SonarQubeException $e) { echo "Generic Package Error: " . $e->getMessage(); }
Documentation
Available Resources
analysis(): Scanner Engine version and metadata.languages(): Supported programming languages.measures(): Component metrics and measures.projects(): Project search and management.server(): Server version and info.system(): Health, liveness, and system status.users(): User management and search.
Testing
./vendor/bin/phpunit
Static Analysis
./vendor/bin/phpstan analyse
SonarQube Integration
To report coverage and test results to SonarQube, use the following properties:
sonar.php.coverage.reportPaths=build/logs/clover.xml sonar.php.tests.reportPath=build/logs/junit.xml
License
The MIT License (MIT). Please see License File for more information.