acamposm/atlas-sonarqube-connector

A PHP connector for the SonarQube API.

Maintainers

Package info

github.com/angelcamposm/atlas-sonarqube-connector

pkg:composer/acamposm/atlas-sonarqube-connector

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-master 2026-05-03 21:21 UTC

This package is auto-updated.

Last update: 2026-05-03 21:33:33 UTC


README

Tests PHP Version License

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.