Go to file
Antoine Vinot b435ceeaff SONAR-24139 Persist new code period when newCode.referenceBranch is used 2025-07-01 20:04:06 +00:00
.cirrus Exclude the test directories from SCA in the right place 2025-04-08 20:03:23 +00:00
.github SONAR-24762 Update enterprise modules in CODEOWNERS file 2025-04-07 20:03:48 +00:00
.vscode SQDEVOPS-485 Creates fips_qa_task 2024-05-21 20:02:35 +00:00
buildSrc/src/main/groovy/org.sonar.build SONAR-23625 support for different version for community build. 2024-11-15 20:02:43 +00:00
docs Updating contributing.md to be more transparent with the process 2021-06-17 20:03:07 +00:00
gradle/wrapper SONAR-19710 Update the build to Gradle 8.9 2024-08-27 20:02:40 +00:00
plugins SONAR-24676 Scanner Exit on java.lang.Error 2025-05-22 20:03:29 +00:00
scripts NO-JIRA Override telemetry metrics URL in telemetry patch 2024-08-30 20:02:41 +00:00
server SONAR-24139 Persist new code period when newCode.referenceBranch is used 2025-07-01 20:04:06 +00:00
sonar-application SONAR-25142 Read value for enterprise and data center edition 2025-05-23 20:03:52 +00:00
sonar-core SCA-434 - Enrich OWASP report results with SCA vulnerability data 2025-05-21 20:04:03 +00:00
sonar-duplications SONAR-24146 Update license headers for 2025 2025-01-09 20:03:22 +00:00
sonar-markdown SONAR-24146 Update license headers for 2025 2025-01-09 20:03:22 +00:00
sonar-plugin-api-impl SONAR-25316 Reduce syscalls from DefaultIndexedFile::uri() 2025-06-16 20:03:07 +00:00
sonar-sarif SONAR-23133 bumped dependencies 2024-10-01 20:02:46 +00:00
sonar-scanner-engine SONAR-24160 Scanner property sonar.token has priority on sonar.login 2025-06-27 20:03:19 +00:00
sonar-scanner-engine-shaded SONAR-23133 Upgrade plugin com.github.johnrengelman.shadow from 7.1.2 to com.gradleup.shadow 8.1.1 2024-10-07 20:03:16 +00:00
sonar-scanner-protocol SONAR-24521 Implements sonar plugin API addAnalysisData method in the scanner-engine. 2025-03-17 22:23:55 +01:00
sonar-shutdowner SONAR-24146 Update license headers for 2025 2025-01-09 20:03:22 +00:00
sonar-testing-harness SONAR-24146 Update license headers for 2025 2025-01-09 20:03:22 +00:00
sonar-testing-ldap SONAR-24146 Update license headers for 2025 2025-01-09 20:03:22 +00:00
sonar-ws NO-JIRA Deleting dead code 2025-06-25 20:03:10 +00:00
sonar-ws-generator SONAR-24146 Update license headers for 2025 2025-01-09 20:03:22 +00:00
.cirrus.star SONAR-22448 prevent trying to run ci on missing cirrus files 2024-06-26 20:03:32 +00:00
.dockerignore BUILD-3755 migrate Travis to Cirrus CI 2024-01-23 20:04:15 +00:00
.gitignore SONAR-23922 Create Toolkit for Bitbucket Server Data Manipulation 2024-12-18 11:13:21 +01:00
.pre-commit-config.yaml BUILD-7788: fix slack notification 2025-04-03 20:04:07 +00:00
HEADER SONAR-24146 Update license headers for 2025 2025-01-09 20:03:22 +00:00
LICENSE.txt Add LICENSE.txt 2016-05-20 13:53:06 +02:00
NOTICE.txt SONAR-24146 Update license headers for 2025 2025-01-09 20:03:22 +00:00
README.md SC-21399 Update link to the translation file in README.md 2025-04-15 20:03:02 +00:00
build.gradle SONAR-25401 Upgrade pdf generation library to version with MQR bugfix 2025-06-30 20:04:06 +00:00
build.sh Double-quote variables used in command arguments in Bash 2019-04-09 20:21:05 +02:00
debug-server.sh SONAR-5709 Add properties sonar.search.javaAdditionalOpts and sonar.web.javaAdditionalOpts 2014-10-08 12:30:07 +02:00
gradle.properties NO-JIRA Update webapp to version 2025.4.0.20378 2025-06-26 20:04:09 +00:00
gradlew SONAR-19710 Update the build to Gradle 8.9 2024-08-27 20:02:40 +00:00
gradlew.bat SONAR-19710 Update the build to Gradle 8.9 2024-08-27 20:02:40 +00:00
logs.sh [script] add logs.sh + tail all SQ log files in start.sh 2017-01-03 15:41:42 +01:00
settings.gradle NO-JIRA Added link from develocity to cirrus 2025-06-16 20:03:07 +00:00
start.sh [SCRIPTS] add support for patches to start.sh 2015-08-06 14:18:35 +02:00
stop.sh SONAR-10690 start.sh, stop.sh & logs.sh support SQ editions 2018-06-12 20:20:59 +02:00
wss-unified-agent.config SONAR-22110 remove test and ut monitoring projects. 2024-08-08 20:02:37 +00:00

README.md

SonarQube Build Status Quality Gate Status AI Code Assurance

Continuous Inspection

SonarQube provides the capability to not only show the health of an application but also to highlight issues newly introduced. With a Quality Gate in place, you can achieve Clean Code and therefore improve code quality systematically.

Have Questions or Feedback?

For support questions ("How do I?", "I got this error, why?", ...), please first read the documentation and then head to the SonarSource Community. The answer to your question has likely already been answered! 🤓

Be aware that this forum is a community, so the standard pleasantries ("Hi", "Thanks", ...) are expected. And if you don't get an answer to your thread, you should sit on your hands for at least three days before bumping it. Operators are not standing by. 😄

Contributing

If you would like to see a new feature or report a bug, please create a new thread in our forum.

Please be aware that we are not actively looking for feature contributions. The truth is that it's extremely difficult for someone outside SonarSource to comply with our roadmap and expectations. Therefore, we typically only accept minor cosmetic changes and typo fixes.

With that in mind, if you would like to submit a code contribution, please create a pull request for this repository. Please explain your motives to contribute this change: what problem you are trying to fix, what improvement you are trying to make.

Make sure that you follow our code style and all tests are passing (Travis build is executed for each pull request).

Willing to contribute to SonarSource products? We are looking for smart, passionate, and skilled people to help us build world-class code-quality solutions. Have a look at our current job offers here!

Building

To build sources locally follow these instructions.

Build and Run Unit Tests

Execute from the project base directory:

./gradlew build

The zip distribution file is generated in sonar-application/build/distributions/. Unzip it and start the server by executing:

# on Linux
bin/linux-x86-64/sonar.sh start
# or on MacOS
bin/macosx-universal-64/sonar.sh start
# or on Windows
bin\windows-x86-64\StartSonar.bat

Open in IDE

If the project has never been built, then build it as usual (see previous section) or use the quicker command:

./gradlew ide

Then open the root file build.gradle as a project in IntelliJ or Eclipse.

Gradle Hints

./gradlew command Description
dependencies list dependencies
licenseFormat --rerun-tasks fix source headers by applying HEADER.txt
wrapper --gradle-version 5.2.1 upgrade wrapper

Building with UI changes

The SonarQube UI (or webapp as we call it), is located in another repository: sonarqube-webapp.

When building the sonarqube repository, the webapp is automatically downloaded from Maven Central as a dependency, it makes it easy for you to contribute backend changes without having to care about the webapp.

But if your contribution also contains UI changes, you must clone the sonarqube-webapp repository, do your changes there, build it locally and then build the sonarqube repository using the WEBAPP_BUILD_PATH environment variable to target your custom build of the UI.

Here is an example of how to do it:

cd /path/to/sonarqube-webapp/server/sonar-web
# do your changes

# install dependencies, only needed the first time
yarn

# build the webapp
yarn build


cd /path/to/sonarqube

# build the sonarqube repository using the custom build of the webapp
WEBAPP_BUILD_PATH=/path/to/sonarqube-webapp/server/sonar-web/build/webapp ./gradlew build

You can also target a specific version of the webapp by updating the webappVersion property in the ./gradle.properties file and then building the sonarqube repository normally.

Translations files

Historically our translations were stored in sonar-core/src/main/resources/org/sonar/l10n/core.properties, but this file is now deprecated and not updated anymore. Default translations (in English) are now defined in the webapp repository, here: https://github.com/SonarSource/sonarqube-webapp/blob/master/libs/sq-server-shared/src/l10n/default.ts

The format has changed but you can still have it as a .properties file format by running the following command:

cd /path/to/sonarqube-webapp/server/sonar-web

# install dependencies, only needed the first time
yarn

# generate a backward compatible .properties file with all the translation keys
yarn generate-translation-keys

Note that contributing extensions for translations into other languages still work the same way as before. It's just the source of truth for the default translations that changed.

License

Copyright 2008-2025 SonarSource.

Licensed under the GNU Lesser General Public License, Version 3.0