Client
The main client for interacting with the SonarQube API.
Main client for SonarQube SDK.
This module provides the main entry point for interacting with the SonarQube API. The SonarQubeClient class provides access to all API namespaces through a clean, namespace-based interface.
Example
Using the SonarQube client:
from sonarqube import SonarQubeClient
# Initialize with token authentication
client = SonarQubeClient(
base_url="https://sonarqube.example.com", token="your-token"
)
# Access API namespaces
projects = client.projects.search(q="backend")
issues = client.issues.search(project_keys=["my-project"])
# Close when done
client.close()
Using as context manager:
with SonarQubeClient(base_url="...", token="...") as client:
projects = client.projects.search()
- class sonarqube.client.SonarQubeClient(base_url, token=None, username=None, password=None, auth=None, timeout=30.0, verify_ssl=True)[source]
Bases:
objectMain client for interacting with the SonarQube API.
This client provides access to all SonarQube API domains through namespace properties. Each namespace corresponds to an API domain (e.g., projects, issues, rules).
Example
Basic usage:
from sonarqube import SonarQubeClient client = SonarQubeClient( base_url="https://sonarqube.example.com", token="your-token" ) # Search for projects projects = client.projects.search(q="backend") for project in projects.components: print(project.name) # Get issues for a project issues = client.issues.search( project_keys=["my-project"], severities=["CRITICAL", "BLOCKER"] ) for issue in issues.issues: print(f"{issue.severity}: {issue.message}") client.close()
Using context manager:
with SonarQubeClient(base_url="...", token="...") as client: projects = client.projects.search()
Using basic authentication:
client = SonarQubeClient( base_url="https://sonarqube.example.com", username="admin", password="admin" )
- Parameters:
- __init__(base_url, token=None, username=None, password=None, auth=None, timeout=30.0, verify_ssl=True)[source]
Initialize the SonarQube client.
- Parameters:
base_url (
str) – Base URL of the SonarQube instance.token (
Optional[str], default:None) – Optional API token for authentication.username (
Optional[str], default:None) – Optional username for basic authentication.password (
Optional[str], default:None) – Optional password for basic authentication.auth (
Optional[BaseAuth], default:None) – Optional custom authentication handler.timeout (
float, default:30.0) – Request timeout in seconds.verify_ssl (
bool, default:True) – Whether to verify SSL certificates.
- Raises:
ValueError – If no authentication is provided or if username is provided without password.
- Return type:
None
Example
Token authentication:
client = SonarQubeClient( base_url="https://sonarqube.example.com", token="squ_abcdef123456" )
Basic authentication:
client = SonarQubeClient( base_url="https://sonarqube.example.com", username="admin", password="admin" )
Custom authentication:
from sonarqube.auth import TokenAuth auth = TokenAuth(token="my-token") client = SonarQubeClient(base_url="https://sonarqube.example.com", auth=auth)
- close()[source]
Close the client and release resources.
Example
>>> client = SonarQubeClient(base_url="...", token="...") >>> # ... use client ... >>> client.close()
- Return type:
- __exit__(exc_type, exc_val, exc_tb)[source]
Exit context manager and close client.
- Parameters:
exc_type (
Optional[type[BaseException]])exc_val (
Optional[BaseException])exc_tb (
object)
- Return type:
- property applications: ApplicationsAPI
Access the Applications API.
- Returns:
ApplicationsAPI instance for managing applications.
Example
>>> app = client.applications.create(name="My Application", key="my-app")
- property components: ComponentsAPI
Access the Components API.
- Returns:
ComponentsAPI instance for searching components.
Example
>>> component = client.components.show(component="my-project")
- property hotspots: HotspotsAPI
Access the Hotspots API.
- Returns:
HotspotsAPI instance for managing security hotspots.
Example
>>> hotspots = client.hotspots.search(project_key="my-project")
- property issues: IssuesAPI
Access the Issues API.
- Returns:
IssuesAPI instance for managing issues.
Example
>>> issues = client.issues.search( ... project_keys=["my-project"], severities=["CRITICAL"] ... )
- property measures: MeasuresAPI
Access the Measures API.
- Returns:
MeasuresAPI instance for getting measures.
Example
>>> measures = client.measures.component( ... component="my-project", metric_keys=["coverage", "bugs"] ... )
- property projects: ProjectsAPI
Access the Projects API.
- Returns:
ProjectsAPI instance for managing projects.
Example
>>> projects = client.projects.search(q="backend") >>> for project in projects.components: ... print(project.name)
- property qualitygates: QualityGatesAPI
Access the Quality Gates API.
- Returns:
QualityGatesAPI instance for managing quality gates.
Example
>>> status = client.qualitygates.project_status(project_key="my-project") >>> print(status.project_status.status)
- property qualityprofiles: QualityProfilesAPI
Access the Quality Profiles API.
- Returns:
QualityProfilesAPI instance for managing quality profiles.
Example
>>> profiles = client.qualityprofiles.search(language="py") >>> for profile in profiles.profiles: ... print(profile.name)
- property rules: RulesAPI
Access the Rules API.
- Returns:
RulesAPI instance for managing rules.
Example
>>> rules = client.rules.search(languages=["py"]) >>> for rule in rules.rules: ... print(rule.name)
- property settings: SettingsAPI
Access the Settings API.
- Returns:
SettingsAPI instance for managing settings.
Example
>>> settings = client.settings.values(keys=["sonar.core.serverBaseURL"])
- property sources: SourcesAPI
Access the Sources API.
- Returns:
SourcesAPI instance for getting source code.
Example
>>> sources = client.sources.lines(key="my-project:src/main.py")
- property system: SystemAPI
Access the System API.
- Returns:
SystemAPI instance for system information.
Example
>>> status = client.system.status() >>> print(f"SonarQube {status.version}")
- property users: UsersAPI
Access the Users API.
- Returns:
UsersAPI instance for managing users.
Example
>>> users = client.users.search(q="john")
- property user_tokens: UserTokensAPI
Access the User Tokens API.
- Returns:
UserTokensAPI instance for managing user tokens.
Example
>>> token = client.user_tokens.generate(name="ci-token")