3cbebc9c13
Initially no quality gate is available, till the first analysis. Previously this was handled as "failed". Now it has its own state.
SonarQube Plugin
The SonarQube Plugin displays code statistics from SonarCloud or SonarQube.
Getting Started
- Install the SonarQube Plugin:
yarn add @backstage/plugin-sonarqube
- Add plugin to the app:
// packages/app/src/plugins.ts
export { plugin as SonarQube } from '@backstage/plugin-sonarqube';
- Add the
SonarQubeCardto the EntityPage:
// packages/app/src/components/catalog/EntityPage.tsx
import { SonarQubeCard } from '@backstage/plugin-sonarqube';
const OverviewContent = ({ entity }: { entity: Entity }) => (
<Grid container spacing={3} alignItems="stretch">
// ...
<Grid item xs={12} sm={6} md={4}>
<SonarQubeCard entity={entity} />
</Grid>
// ...
</Grid>
);
- Add the proxy config:
SonarCloud
// app-config.yaml
proxy:
'/sonarqube':
target: https://sonarcloud.io/api
allowedMethods: ['GET']
headers:
Authorization:
# Content: 'Basic base64("<api-key>:")' <-- note the trailing ':'
# Example: Basic bXktYXBpLWtleTo=
$env: SONARQUBE_AUTH_HEADER
SonarQube
// app-config.yaml
proxy:
'/sonarqube':
target: https://your.sonarqube.instance.com/api
allowedMethods: ['GET']
headers:
Authorization:
# Content: 'Basic base64("<api-key>:")' <-- note the trailing ':'
# Example: Basic bXktYXBpLWtleTo=
$env: SONARQUBE_AUTH_HEADER
sonarQube:
baseUrl: https://your.sonarqube.instance.com
-
Get and provide
SONARQUBE_AUTH_HEADERas env variable (https://sonarcloud.io/account/security or https://docs.sonarqube.org/latest/user-guide/user-token/) -
Add the
sonarqube.org/project-keyannotation to your component-info.yaml file:
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: backstage
description: |
Backstage is an open-source developer portal that puts the developer experience first.
annotations:
sonarqube.org/project-key: YOUR_PROJECT_KEY
spec:
type: library
owner: Spotify
lifecycle: experimental
