Sonarqube Plugin
Swingletree needs some context when receiving webhook events from SonarQube. Therefore some additional analysis properties need to be set when running a sonar-scanner during your CI build.
Features
The Swingletree SonarQube Plugin offers following functionalities:
- Attaches SonarQube findings to Pull Request via GitHub Check Run annotations
Processed data is persisted to ElasticSearch (if enabled) and can be processed to reports using Kibana or Grafana.
Sending a report to Swingletree
This plugin retrieves its data via a SonarQube webhook. Yoke CLI is not required to send reports.
SonarQube webhook
SonarQube needs to send a notification to Swingletree when the SonarQube analysis has finished processing. Add a SonarQube webhook via the SonarQube UI (administrator privileges required) using the webhook endpoint https://gate.swingletree.example/report/sonarqube.
CI build configuration
sonar.analysis.commitId, containing the commit idsonar.analysis.repository, containing the full repository pathsonar.analysis.buildId, containing the build uuid generated by yoke for the current build run
You can set the parameters when invoking the sonar-scanner. For example:
sonar-scanner \
-Dsonar.analysis.commitId=628f5175ada0d685fd7164baa7c6382c1f25cab4 \
-Dsonar.analysis.repository=error418/swingletree
Of course these values (at least commitId) need to be acquired dynamically on each build.
Reference branch analysis
A reference branch can be set by providing the SonarQube property sonar.branch.target.
SonarQube will run the branch analysis in relation to the provided branch name.
Repository-specific Configuration
Repository-specific behaviour can be configured by placing a .swingletree.yml in the repository root directory. Swingletree reads from the master branch file only.
Swingletree fails on any findings, if no .swingletree.yml is available in the repository.
plugin:
sonar:
# if true: require developer action if coverage is declining
blockCoverageLoss: false
| Property | Description | Default |
|---|---|---|
blockCoverageLoss |
require developer action on coverage loss | false |
More examples
Swingletree Web-UI offers different code snippets specific to your currently deployed Swingletree version.