On this page

PrerequisitesImporting your Bitbucket Server repositories into SonarQubeAdding pull request decoration to the Bitbucket serverPreventing pull request merges when the quality gate fails

Bitbucket Server integration

SonarQube's integration with Bitbucket Server allows you to maintain code quality and security in your Bitbucket Server repositories.

With this integration, you'll be able to:

Prerequisites

Integration with Bitbucket Server requires at least Bitbucket Server version 5.15.

Branch Analysis

Community Edition doesn't support the analysis of multiple branches, so you can only analyze your main branch. Starting in Developer Edition, you can analyze multiple branches and pull requests.

Importing your Bitbucket Server repositories into SonarQube

Setting up the import of BitBucket Server repositories into SonarQube allows you to easily create SonarQube projects from your Bitbucket Server repositories. If you're using Developer Edition or above, this is also the first step in adding pull request decoration.

To set up the import of BitBucket Server repositories:

  1. Set your global DevOps Platform integration settings
  2. Add a personal access token for importing repositories

Setting your global ALM integration settings

To set your global ALM Integration settings, navigate to Administration > ALM Integrations, select the Bitbucket tab, and select Bitbucket Server as the variant you want to configure. From here, specify the following settings:

  • Configuration Name (Enterprise and Data Center Edition only):  The name used to identify your Bitbucket Server configuration at the project level. Use something succinct and easily recognizable.
  • Bitbucket Server URL: your instances URL. For example, https://bitbucket-server.your-company.com.
  • Personal Access Token – A Bitbucket Server user account is used to decorate pull requests. We recommend using a dedicated Bitbucket Server account with Administrator permission. You need a Personal Access Token from this account with Write permission for the repositories that will be analyzed. This personal access token is used for pull request decoration, and you'll be asked for another personal access token for importing projects in the following section.

Adding a personal access token for importing repositories

After setting your global settings, you can add a project from Bitbucket Server by clicking the Add project button in the upper-right corner of the Projects homepage and selecting Bitbucket.

Then, you'll be asked to provide a personal access token from your user account with Read permissions for both projects and repositories. This token will be stored in SonarQube and can be revoked at any time in Bitbucket Server.

After saving your personal access token, you'll see a list of your Bitbucket Server projects that you can set up and add to SonarQube. Setting up your projects this way also sets your project settings for pull request decoration.

Adding pull request decoration to the Bitbucket server

Pull request decoration shows your quality gate and analysis metrics directly in Bitbucket Server.

After you've set up SonarQube to import your Bitbucket Server repositories as shown in the previous section, the simplest way to add pull request decoration is by adding a project from Bitbucket Server. Select the Add project button in the upper-right corner of the Projects homepage and choose Bitbucket.

Then, follow the steps in SonarQube to analyze your project. The project settings for pull request decoration are set automatically.

Adding pull request decoration to a manually created or existing project

To add pull request decoration to a manually created or existing project, make sure your global ALM Integration settings are configured as shown in the Importing your Bitbucket Server repositories into SonarQube section above, and set the following project settings at Project Settings > General Settings > Pull Request Decoration:

  • Configuration name: The configuration name that corresponds to your DevOps Platform instance.
  • Project Key: the project key is part of your BitBucket Server repository URL  (.../projects/<key>/repos/<slug>/browse).
  • Repository SLUG: The repository slug is part of your BitBucket Server repository URL (.../projects/<key>/repos/<slug>/browse).

Advanced pull request configuration

Preventing pull request merges when the quality gate fails

After setting up pull request analysis, you can block pull requests from being merged if it is failing the quality gate. To do this:

  1. In Bitbucket Server, navigate to Repository settings > Code Insights.
  2. Add a Required report called com.sonarsource.sonarqube

This report will be in the format of com.sonarsource.sonarqube_{hash} (instead of com.sonarsource.sonarqube). This hash is a randomly computed value that can be discovered on Bitbucket after the first PR analysis.

  1. Select Must pass as the Required status.
  2. Select Must not have any annotations as the Annotation requirements.

© 2008-2022, SonarSource S.A, Switzerland. Except where otherwise noted, content in this space is licensed under a Creative Commons Attribution-NonCommercial 3.0 United States License. SONARQUBE is a trademark of SonarSource SA. All other trademarks and copyrights are the property of their respective owners.

Creative Commons License