SonarQube-Scans konfigurieren

SonarQube bietet eine Übersicht über den Gesamtzustand und die Qualität Ihres Quellcodes und markiert Probleme, die in neuem Code gefunden werden. Die Analysefunktionen für Code erkennen schwierige Fehler wie Dereferenzen mit Nullzeigern, logische Fehler oder Ressourcenlecks für über 20 Codiersprachen.

Gehen Sie wie folgt vor, um SonarQube so zu konfigurieren, dass die Qualität Ihres Quellcodes fortlaufend analysiert und gemessen wird:

  1. Klicken Sie in der IBM Cloud-Konsole auf das Menüsymbol Hamburger-Symbol > Plattformautomatisierung > Toolchains. Klicken Sie auf der Seite 'Toolchains' auf die Toolchain, um die zugehörige Übersichtsseite zu öffnen. Alternativ können Sie auf der Übersichtsseite Ihrer App auf der Karte für Continuous Delivery auf Toolchain anzeigen klicken. Klicken Sie anschließend auf Übersicht.

    a. Klicken Sie auf Tool hinzufügen.

    b. Klicken Sie im Abschnitt mit den Toolintegrationen auf SonarQube.

  2. Geben Sie einen Namen für diese Instanz der SonarQube-Toolintegration ein.

  3. Geben Sie die URL für die SonarQube-Instanz ein, die geöffnet werden soll, wenn Sie in Ihrer Toolchain auf die Karte für SonarQube klicken.

  4. Optional: Geben Sie den Benutzernamen ein, den Sie für die Verbindung mit dem Server SonarQube verwenden.

    Sie müssen nur dann einen Benutzernamen angeben, wenn Sie ein Kennwort für die Verbindung mit dem Server SonarQube verwenden. Wenn Sie zum Herstellen einer Verbindung ein Authentifizierungstoken verwenden, lassen Sie dieses Feld leer.

  5. Geben Sie das Kennwort oder das Authentifizierungstoken ein, das Sie zum Herstellen einer Verbindung zum SonarQube-Server verwenden.

  6. Wenn sich der Server nicht im öffentlichen Internet befindet, wählen Sie Erweitert. IBM Cloud kann die von Ihnen angegebenen Verbindungsdetails nicht validieren und bestimmte Funktionen, die einen API-Zugriff auf diesen Server erfordern, sind deaktiviert. Die Bereitstellungspipeline funktioniert nur, indem ein privater Worker verwendet wird, der über einen Netzzugriff auf diesen Server verfügt.

  7. Klicken Sie auf Integration erstellen.

  8. Klicken Sie auf der Übersichtsseite Ihrer Toolchain auf der Karte Tools anderer Anbieter auf SonarQube, um das Dashboard für die SonarQube-Instanz anzuzeigen, zu der Sie eine Verbindung hergestellt haben.

Hinzufügen von Sonarqube zur kontinuierlichen Integrationspipeline

Standardinstanz von SonarQube

  • Wenn sonarqube-config auf default gesetzt ist, wird standardmäßig SonarQube zum Scannen verwendet. Dieser Scan wird als Docker-in-Dockerausgeführt.

Die verwendete Instanz ist nur während des Testlaufs verfügbar. Daher können Sie nicht auf das Dashboard zugreifen.

  • Standardmäßig verwendet die Pipeline die Community Edition SonarQube, die nur über eingeschränkte checks.Many-Schwachstellenregeln und Hostspot-Probleme werden von Community Editionnicht abgedeckt.

  • Um zu überprüfen, ob eine Schwachstelle in der Community Edition geprüft wird, lesen Sie den Abschnitt Thread in Sonarqube community question.

SonarQube, siehe SonarQube Downloads

SonarQube-Instanz im Einheitencluster

Wenn sonarqube-config auf cluster gesetzt ist, erstellt die Pipeline eine SonarQube-Instanz während der Pipelineausführung im Einheitencluster. Sie können auf diese Instanz zugreifen, nachdem die Static-Scan-Phase erfolgreich runs.You können über die Portweiterleitung lokal auf das Dashboard SonarQube zugreifen.

Vorhandene SonarQube-Instanz

Setzen Sie sonarqube-config auf custom, um Ihre eigene Instanz SonarQube zu Ihrer bestehenden Pipeline hinzuzufügen, fügen Sie die Werkzeugintegration zu Ihrer Toolchain hinzu, und fügen Sie dann den Parameter SonarQube für die Werkzeugintegration zur Pipeline hinzu. Weitere Informationen finden Sie unter SonarQube.

Sonarqube-Server mit selbst signiertem Zertifikat

Wenn sonarqube-config auf custom eingestellt ist, um einen vorhandenen Sonarqube-Server zu verwenden, und der Server über ein selbstsigniertes Zertifikat verfügt, muss das selbstsignierte Zertifikat zu den vertrauenswürdigen CA-Zertifikaten hinzugefügt werden, damit der Sonar-Scanner erfolgreich eine Verbindung mit dem Sonarqube-Server herstellen kann.

Durch die Bereitstellung des Zertifikats in einem PEM-Format (entweder base64 verschlüsselter Geheimwert oder PEM formatierter Klartext) als Wert der Pipeline/Trigger-Eigenschaft sonarqube-root-certificate wird die Konfiguration entsprechend der Verwendung von SonarScanner für Maven, SonarScanner für Gradle Sonar oder SonarScanner, das mit Docker aufgerufen wird, hinzugefügt.

Parameter

Für die Ausführung des SonarQube-Scans benötigt die Pipeline die folgenden kontinuierlichen Integrationsparameter:

Continuous integration pipeline parameters
Name Typ Beschreibung Erforderlich oder optional
Clustername Text Der Name des Docker-Build-Clusters. Erforderlich
dev-region Text Die IBM Cloud-Region, die den Cluster hostet. Erforderlich
opt-in-sonar Text Die Option zum Aktivieren des SonarQube-Scans. Erforderlich
SonarQube Toolintegration Die Sonarqube-Toolintegration. Optionale
Sonarqube-config Text Führt einen SonarQube-Scan in einem isolierten Docker-in-Docker-Container (Standardkonfiguration) oder in einem vorhandenen Kubernetes-Entwicklungscluster (Clusterkonfiguration) aus. Alternativ können Sie Ihre eigene SonarQube-Instanz verwenden und die SonarQube-Toolintegration (angepasste Konfiguration) konfigurieren. Optionen: default, cluster oder custom. Die Voreinstellung ist default. Weitere Informationen finden Sie unter SonarQube zur Pipeline für kontinuierliche Integration hinzufügen. Erforderlich
Opt-in-Sonar-Hotspots Text Der Sonarqube-Scan zum Erkennen von Hotspots. Optionale
Opt-in-Sonar-Qualitätskontrollen Text Der Sonarqube-Scan ermöglicht die Erkennung von Qualitätsmängeln. Optionale
opt-in-sonar-pr-analyse Text Erlauben, dass der Sonarqube-Scan die Pull-Request-Analyse durchführt (Diese Option funktioniert nur, wenn der PR nicht von einem geforketen Repository stammt). Dieser Parameter ist nur für App-preview PR pipeline gültig. Optionale
sonarqube-Benutzer-Token Secret Übergeben Sie das Benutzer-Token, das für den API-Zugang verwendet wird, wenn sonarqube-config auf custom Optionale
sonarqube-root-zertifikat Text oder Sekert Falls sonarqube-config auf custom gesetzt ist, übergeben Sie das selbstsignierte Zertifikat als PEM formatierten Text oder base64 verschlüsselten Geheimtext Optionale

Weitere Informationen zu Pipeline-Parametern finden Sie unter Pipeline-Parameter.

Wenn Sie mehrere SonarQube-Toolintegrationen zu Ihrer Pipeline hinzufügen, können Sie zwischen diesen wechseln, indem Sie den Wert des Parameters sonarqube Pipeline ändern, der ein Toolintegrations-Parameter ist.

In SonarQube installierte Plug-ins

DevSecOps Pipelines verwendet standardmäßig SonarQube Version 10.0.

Weitere Informationen zur Liste der vorinstallierten Plug-ins finden Sie unter Plug-ins.

Von SonarQube gemeldete Probleme

DevSecOps Pipelines filtert die Probleme heraus, die während SonarQube-Scans gemeldet wurden. Die Pipelines erstellen ausschließlich Konformitätsvorfälle für Probleme, die nicht vom Typ CODE_SMELL oder BUG sind. Die Pipeline überspringt auch Probleme mit dem Status CLOSED.

Aktivieren der Pull Request-Analyse in der App Preview PR-Pipeline

Die Option PR-Analyse wird in App Preview PR pipeline angeboten, wenn der PR aus demselben Repository wie das Ziel-Repository stammt (und nicht von einem Fork). Die Sonarqube-Instanz sollte auch die PR-Analyse unterstützen. Die Standard-Sonarqube-Instanzen, die im Modus cluster und dind verwendet werden, unterstützen diese Funktion nicht, da die Pull-Request-Analyse erst ab der Sonarqube Developer Edition verfügbar ist. Die Umgebungsvariable opt-in-sonar-pr-analysis muss der Pipeline hinzugefügt werden, und ihr Wert sollte nicht leer sein.

Aktivieren der Quality Gate-Ergebnisverarbeitung für ein SonarQube Projekt

Ein Quality Gate in SonarQube ist eine Reihe von Bedingungen, die bestimmen, ob ein Projekt die erforderlichen Qualitätsstandards des Codes erfüllt. Weitere Informationen über Quality Gates finden Sie unter SonarQube Dokumentation.

SonarQube der Issue Parser unterstützt die Verarbeitung der Ergebnisse des SonarQube Quality Gate und erstellt Issues, wenn dadurch ein Fehler auftritt. Um die Verarbeitung der Quality Gates Ergebnisse zu ermöglichen, setzen Sie die Umgebungseigenschaft opt-in-sonar-quality-gates auf 1.

Wenn opt-in-sonar-quality-gates als 1 eingestellt ist und Sie Ihre eigene SonarQube Instanz als Integration verwenden (mit sonarqube-config als custom eingestellt), können Sie zum Abrufen des Quality Gate-Namens ein SonarQube User Token mit der erforderlichen Berechtigung zum Zugriff auf SonarQube Web API generieren und die Pipeline-Umgebungseigenschaft sonarqube-user-token mit dem Token als geheimen Wert einstellen. Einzelheiten über die erforderliche Token-Erlaubnis finden Sie unter SonarQube token permission.

Wenn Sie die Instanz SonarQube, die von der Pipeline erstellt wurde, oder eine benutzerdefinierte SonarQube Tool-Integration verwenden, führen Sie die folgenden Schritte aus, um durch das Dashboard SonarQube zu navigieren:

  1. Rufen Sie das SonarQube-Dashboard auf, das von der URL aus den Pipelineprotokollen in der Task static-scan erstellt wurde.

    SonarQube-Dashboard
    SonarQube-Dashboards

  2. Standardmäßig ist das Qualitätssicherungssystem Sonar way mit jedem Projekt verknüpft, das nicht ausdrücklich mit einem bestimmten Qualitätssicherungssystem verbunden ist. Es können auch neue Quality Gates mit benutzerdefinierten metrischen Bedingungen erstellt werden.

    • Um die Liste der Quality Gates im Dashboard aufzurufen, klicken Sie in der oberen Navigationsleiste auf Quality Gate.

      SonarQube standard-Qualitätstor Standard-Qualitätstor
      SonarQube

    • Um ein neues Quality Gate zu erstellen, klicken Sie in der oberen Navigationsleiste auf Quality Gate und dann auf Erstellen. Sie können dem Quality Gate einen Namen geben und die Bedingungsmetriken hinzufügen/löschen/aktualisieren.

    • Um das mit dem Projekt verbundene Quality Gate zu suchen, wählen Sie das Projekt aus und klicken Sie auf Projekteinstellungen > Quality Gate.

      SonarQube projekt Quality Gate Quality Gate im Zusammenhang mit dem Projekt
      SonarQube

    • Um einem bestimmten Projekt ein anderes Quality Gate (als das Standard-Gate) zuzuordnen, wählen Sie das Projekt aus und klicken Sie auf Projekteinstellungen > Quality Gate > Immer ein bestimmtes Quality Gate verwenden > Wählen Sie das gewünschte Quality Gate aus der Dropdown-Liste aus > Speichern

      caption-side=bottom"
      SonarQube projekt Quality Gate Verbindung von Quality Gate und Projekt

  3. Neue Scans werden von diesem Qualitätsgate ausgewertet und der Nachweis wird durch die Ergebnisse des Qualitätsgates erstellt. Fragen werden auf der Grundlage der Bedingungen erstellt, die zum Ausfall des Quality Gate geführt haben.

    Ein Beispiel für das Ergebnisformat des Quality-Gate-Status, das die Antwort der Sonarqube-API ist: ${SONAR_HOST_URL}/api/qualitygates/project_status?projectKey=${SONAR_PROJECT_KEY}:

    {
       "projectStatus": {
          "status": "ERROR",
          "conditions": [
             {
             "status": "ERROR",
             "metricKey": "new_coverage",
             "comparator": "LT",
             "errorThreshold": "80",
             "actualValue": "0.0"
             },
             {
             "status": "OK",
             "metricKey": "new_duplicated_lines_density",
             "comparator": "GT",
             "errorThreshold": "3",
             "actualValue": "0.0"
             },
             {
             "status": "ERROR",
             "metricKey": "new_security_hotspots_reviewed",
             "comparator": "LT",
             "errorThreshold": "100",
             "actualValue": "0.0"
             },
             {
             "status": "ERROR",
             "metricKey": "new_violations",
             "comparator": "GT",
             "errorThreshold": "0",
             "actualValue": "14"
             }
          ],
          "ignoredConditions": false,
          "period": {
             "mode": "PREVIOUS_VERSION",
             "date": "2025-03-18T09:43:25+0000"
          },
          "caycStatus": "compliant",
          "additional": {
             "qualityGateName": "Sonar way",
             "projectKey": "hello-compliance-app-compliance-check",
             "dashboardUrl": "http://localhost:9001/dashboard?id=hello-compliance-app-compliance-check"
          }
       }
    }
    
    

    Weitere Informationen über die SonarQube APIs finden Sie in der Sonarqube-Dokumentation WebAPI

    Für jeden Metrik-Schlüssel, der den Status ERROR hat, wird ein Problem erstellt, um sicherzustellen, dass jede fehlerhafte Metrik einzeln verfolgt und behandelt wird.

    Beispielthema:

    caption-side=bottom"
    SonarQube issue Sonarqube issue für eine fehlgeschlagene Metrik

    Beispiel SonarQube fehlgeschlagene Beweise aufgrund eines Fehlers im Quality Gate:

    {
       "id": "abc",
       "evidence_type_id": "com.ibm.static_scan",
       "evidence_type_version": "1.0.0",
       "date": "2025-03-18T11:22:35.086Z",
       "origin": {
       },
       "details": {
          "result": "failure",
          "tool": "sonarqube",
          "failure_reason": "tool_detected_vulnerabilities"
       },
       "issues": [
          "https://github.com/<org-name>/compliance-issues-20250310111628285/issues/14",
          "https://github.com/<org-name>/compliance-issues-20250310111628285/issues/15"
       ],
       "findings": [
          {
             "id": "Metric: new_coverage",
             "due_date": "n/a",
             "severity": "high",
             "first_found": "2025-03-18",
             "url": "https://github.com/<org-name>/compliance-issues-repo/issues/14",
             "found_status": "existing",
             "has_exempt": false,
             "cvss": "n/a",
             "package": []
          },
          {
             "id": "Metric: new_security_hotspots_reviewed",
             "due_date": "n/a",
             "severity": "high",
             "first_found": "2025-03-18",
             "url": "https://github.com/<org-name>/compliance-issues-repo/issues/15",
             "found_status": "existing",
             "has_exempt": false,
             "cvss": "n/a",
             "package": []
          }
       ],
       "attachments": [
          {
             "hash": "d10a1e5d727b4f778a1d70c2ebaa2060251d56dd79",
             "url": "https://s3.us-south.cloud-object-storage.appdomain.cloud/attachments/d10a1e5d727b4f778a1d70c2e/content",
             "label": "app_issues"
          },
          {
             "hash": "d76d356cc4da1afc942a6259c1222a7b079607ea7e0d64",
             "url": "https://s3.us-south.cloud-object-storage.appdomain.cloud/attachments/d76d356cc4da1afc942a6259c1222a7b0/content",
             "label": "app_hotspots"
          },
          {
             "hash": "f0f84a2c2210a9c65c8430d577dafdd71bee6df5da",
             "url": "https://s3.us-south.cloud-object-storage.appdomain.cloud/attachments/f0f84a2c2210a9c65c8430d577dafdd71bee6e/content",
             "label": "app_quality_status_updated"
          }
       ],
       "assets": [
          {
             "hash": "1812f77dfc646c93320794810460acd3e53",
             "uri": "https://github.com/<org-name>/abcd/compliance-app-20250310111628285.git#7a06e70001a59032d1",
             "url": "https://s3.us-south.cloud-object-storage.appdomain.cloud/assets/1812f77dfc646c93320794810460acd3e/index.json"
          }
       ]
    }
    
    

Bitte stellen Sie sicher, dass Sie opt-in-sonar-quality-gates in CC aktivieren, wenn es in der CI-Pipeline aktiviert ist. Andernfalls werden die von CC festgestellten Qualitätsprobleme automatisch behoben. Derzeit werden in den Protokollen Warnmeldungen zu dieser Inkonsistenz angezeigt.

Weitere Informationen über SonarQube, finden Sie unter SonarQube Dokumentation.

Aktivieren der SonarQube Hotspot-Verarbeitung

Ein SonarQube Hotspot hebt sicherheitsrelevanten Code hervor, der manuell überprüft werden muss, um festzustellen, ob er ein echtes Risiko darstellt. Es hilft den Entwicklern, sich auf potenzielle Schwachstellen zu konzentrieren, ohne falsch positive Ergebnisse zu erzeugen. Weitere Informationen zur Verwaltung von Hotspots finden Sie unter SonarQube Dokumentation.

Um die Verarbeitung von SonarQube Hotspots zu ermöglichen, setzen Sie die Umgebungseigenschaft opt-in-sonar-hotspots auf 1.

Wenn opt-in-sonar-hotspots als 1 eingestellt ist und Sie Ihre eigene SonarQube Instanz als Integration verwenden (mit sonarqube-config als custom eingestellt), um Sonarqube erkannte Hotspots über die Web-API abzurufen, können Sie ein SonarQube Benutzer-Token mit der erforderlichen Berechtigung für den Zugriff auf SonarQube Web-API generieren und die Pipeline-Umgebungseigenschaft sonarqube-user-token mit dem Token als geheimen Wert einstellen. Einzelheiten über die erforderliche Token-Erlaubnis finden Sie unter SonarQube token permission.

  • Um die von SonarQube für ein Projekt erkannten Sicherheitshotspots anzuzeigen, wählen Sie das Projekt aus und klicken Sie dann auf Sicherheitshotspots.

    SonarQube projekt Hotspots Hotspots, die von
    SonarQube

  • Um die erkannten Hotspots zu überprüfen, wählen Sie den Hotspot aus und klicken Sie dann auf Überprüfen. Es erscheint ein Dialogfenster, in dem Sie den Überprüfungsstatus auf einen der folgenden Werte einstellen können: To Review, Acknowledged, Fixed und Safe.

    SonarQube projekt Hotspots Überprüfung hotspots
    SonarQube

Wenn Sie das Kennzeichen opt-in-sonar-hotspots aktivieren, werden Ausgaben erstellt, wenn ein Hotspot von SonarQube erkannt wird und der Überprüfungsstatus nicht auf "nicht" gesetzt ist: Acknowledged, Fixed und Safe.

SonarQube hotspot-Problem Hotspot-Problem
SonarQube

Ein Beispiel für das Ergebnisformat der Hotspots, das die Antwort der SonarQube API ist:${SONAR_HOST_URL}/api/hotspots/search?projectKey=${SONAR_PROJECT_KEY}&p=$page&status=TO_REVIEW"

{
   "hotspots": [
      {
         "key": "AYLD_a1_Hqacjdg4wbDR",
         "component": "hello-compliance-app-compliance-check:index.js",
         "project": "hello-compliance-app-compliance-check",
         "securityCategory": "others",
         "vulnerabilityProbability": "LOW",
         "status": "TO_REVIEW",
         "line": 74,
         "message": "Make sure disabling content security policy frame-ancestors directive is safe here.",
         "author": "abc@1.com",
         "creationDate": "2022-04-01T06:29:13+0000",
         "updateDate": "2022-08-22T05:18:31+0000",
         "textRange": {
         "startLine": 74,
         "endLine": 84,
         "startOffset": 0,
         "endOffset": 1
         },
         "flows": [
         {
            "locations": [
               {
               "component": "hello-compliance-app-compliance-check:app.js",
               "textRange": {
                  "startLine": 76,
                  "endLine": 82,
                  "startOffset": 4,
                  "endOffset": 5
               }
               }
            ]
         }
         ],
         "rule": {
         "key": "javascript:S5732"
         }
      }
   ]
}

Wird im Ergebnis der vorangegangenen API ein To Review Status-Hotspot angetroffen, wird ein Fehlernachweis mit Hotspot-Informationen im Abschnitt findings gesammelt.

Beispiel SonarQube fehlgeschlagener Beweis aufgrund von Hotspot-Erkennung:

{
  "id": "62fc60140b2a761a969c6ad4f64d93d9c0f8f2301b1",
  "evidence_type_id": "com.ibm.static_scan",
  "evidence_type_version": "1.0.0",
  "date": "2025-03-18T10:29:00.896Z",
  "origin": {
  },
  "details": {
    "result": "failure",
    "tool": "sonarqube",
    "failure_reason": "tool_detected_vulnerabilities"
  },
  "issues": [
    "https://github.com/<org-name>/compliance-issues-20250310111628285/issues/13"
  ],
  "findings": [
    {
      "id": "javascript:S4426",
      "due_date": "n/a",
      "severity": "high",
      "first_found": "2025-03-18",
      "url": "https://github.com/<org-name>/compliance-issues-20250310111628285/issues/12",
      "found_status": "new",
      "has_exempt": false,
      "cvss": "n/a",
      "package": []
    },
    {
      "id": "Hotspot: javascript:S2068",
      "due_date": "n/a",
      "severity": "high",
      "first_found": "2025-03-18",
      "url": "https://github.com/<org-name>/compliance-issues-20250310111628285/issues/13",
      "found_status": "new",
      "has_exempt": false,
      "cvss": "n/a",
      "package": []
    },
  ],
  "attachments": [
    {
      "hash": "e579a1ab8025d280d5870eb8d4464d6d6a41a22",
      "url": "https://s3.us-south.cloud-object-storage.appdomain.cloud/attachments/e579a1ab8025d280d5870eb8d4464d6d6a41a/content",
      "label": "app_issues"
    },
    {
      "hash": "6defa891c320ae2b80ae76d03e168edc2379",
      "url": "https://s3.us-south.cloud-object-storage.appdomain.cloud/attachments/6defa891c320ae2b80ae76d03e168edc2379748d9/content",
      "label": "app_hotspots"
    },
    {
      "hash": "060a60e2d693427cde6064f72743ebb9e1d6",
      "url": "https://s3.us-south.cloud-object-storage.appdomain.cloud/attachments/060a60e2d693427cde6064f72743ebb9e1d/content",
      "label": "app_quality_status_updated"
    }
  ],
  "assets": [
    {
      "hash": "d7391b3273e5e52852f293031d62b9",
      "uri": "https://github.com/<org-name>/compliance-app-20250310111628285.git#4eadaaf7454b8cb0edad927",
      "url": "https://s3.us-south.cloud-object-storage.appdomain.cloud/assets/d7391b3273e5e52852f293031d62b9bf0/index.json"
    }
  ]
}

Bitte stellen Sie sicher, dass Sie opt-in-sonar-hotspots in CC aktivieren, wenn es in der CI-Pipeline aktiviert ist. Andernfalls werden die von CC gefundenen Hotspot-Probleme automatisch behoben. Derzeit werden in den Protokollen Warnmeldungen zu dieser Inkonsistenz angezeigt.

Berechtigungen für SonarQube Token

Im Falle der Verwendung einer bestehenden SonarQube-Instanz und um den Testrecord erfolgreich in Devops Insights zu veröffentlichen und den Quality Gate-Namen für ein Projekt abzurufen, müssen wir ein User-Token mit den erforderlichen Berechtigungen erstellen und es als geheimen Wert in der env-Eigenschaft sonarqube-user-token festlegen, um die Berechtigung für den Zugriff auf die erforderlichen Sonarqube-Enpoints bereitzustellen.

Um ein Benutzer-Token zu erstellen, öffnen Sie SonarQube Dashboard > klicken Sie auf Ihr Profilbild > wählen Sie Mein Konto > wählen Sie Sicherheit > wählen Sie aus der Dropdown-Liste Typ das Benutzer-Token > klicken Sie auf Generieren

SonarQube Benutzer-Token Benutzer-Token-Generierung
SonarQube

  1. Das Devops Insights-Plugin führt die folgenden API-Aufrufe an den Sonarqube-Server aus:

    • GET api/qualitygates/project_status

      Erfordert eine der folgenden Berechtigungen:

      • system verwalten"
      • verwalter"-Rechte für das angegebene Projekt
      • 'Durchsuchen' des angegebenen Projekts
      • analyse ausführen" für das angegebene Projekt
    • GET api/measures/component

      Erfordert die Berechtigung "Durchsuchen" für das/die angegebene(n) Projekt(e). komponente.

    • GET api/issues/search

      Erfordert die Berechtigung "Durchsuchen" für das/die angegebene(n) Projekt(e).

    • GET api/ce/task

      Erfordert eine der folgenden Berechtigungen:

      • verwalten" auf globaler oder Projektebene
      • analyse durchführen" auf globaler oder Projektebene
  2. Zum Abrufen des Quality Gate-Namens wird der folgende SonarQube Endpunkt verwendet:

    • GET api/qualitygates/get_by_project

      Erfordert eine der folgenden Berechtigungen:

      • system verwalten"
      • verwalter"-Rechte für das angegebene Projekt
      • 'Durchsuchen' des angegebenen Projekts
  3. Um die SonarQube erkannten Hotspots abzurufen, wird der folgende SonarQube Endpunkt verwendet:

Weitere Informationen zu den Zugriffsberechtigungen für die SonarQube Web API finden Sie in der Dokumentation SonarQube Web API

Eigene Konfigurationsdatei verwenden

Sie können die Standardkonfiguration ändern, ohne die eigene SonarQube-Instanz zu verwenden. Erstellen Sie eine sonar-project.properties Datei in dem Projektarchiv, in dem Sie die Konfigurationsdatei erstellen möchten. Wenn unser Script eine vorhandene Datei configuration sonar-project.properties im Repo erkennt, verwendet es diese Datei anstelle der Standarddatei. Weitere Informationen zu den möglichen Analyseparametern in der Konfigurationsdatei finden Sie unter Analyseparameter hier.

Wenn sonar.branch.name in der Datei sonarqube-project.properties hinzugefügt wird, dann wird sie als Standardwert auf sonar-branch-name env property gesetzt, andernfalls wird der unter load_repo <app-name> branch verfügbare Zweigname berücksichtigt. Weitere Informationen finden Sie in der Dokumentation zur Verzweigungsanalyse.

Stellen Sie sicher, dass Sie die richtigen Anmeldeberechtigungsnachweise und die richtige Host-URL zur Konfigurationsdatei hinzufügen.

Verwendung einer anderen statischen Scanimplementierung

Sie können Ihre Datei .pipeline-config.yaml so ändern, dass Sie Ihr eigenes angepasstes Script zur Stage static-scan hinzufügen, um Ihre eigene statische Scanimplementierung zu verwenden.

Weitere Informationen zu SonarQube

Weitere Informationen über SonarQube, finden Sie unter SonarQube Dokumentation.