Files
backstage/plugins/sonarqube
Oliver Sand 3cbebc9c13 fix: fix edge case of sonarqube plugin if no quality gate was computed
Initially no quality gate is available, till the first analysis. Previously this was handled as "failed". Now it has its own state.
2020-11-02 19:20:23 +01:00
..
2020-10-30 09:52:39 +01:00
2020-10-30 10:26:09 +01:00
2020-10-30 09:52:39 +01:00

SonarQube Plugin

The SonarQube Plugin displays code statistics from SonarCloud or SonarQube.

Sonar Card

Getting Started

  1. Install the SonarQube Plugin:
yarn add @backstage/plugin-sonarqube
  1. Add plugin to the app:
// packages/app/src/plugins.ts

export { plugin as SonarQube } from '@backstage/plugin-sonarqube';
  1. Add the SonarQubeCard to 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>
);
  1. 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
  1. Get and provide SONARQUBE_AUTH_HEADER as env variable (https://sonarcloud.io/account/security or https://docs.sonarqube.org/latest/user-guide/user-token/)

  2. Add the sonarqube.org/project-key annotation 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