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:
-
Klicken Sie in der IBM Cloud-Konsole auf das Menü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.
-
Geben Sie einen Namen für diese Instanz der SonarQube-Toolintegration ein.
-
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.
-
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.
-
Geben Sie das Kennwort oder das Authentifizierungstoken ein, das Sie zum Herstellen einer Verbindung zum SonarQube-Server verwenden.
-
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.
-
Klicken Sie auf Integration erstellen.
-
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-configaufdefaultgesetzt 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:
| 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:
-
Rufen Sie das SonarQube-Dashboard auf, das von der URL aus den Pipelineprotokollen in der Task
static-scanerstellt wurde.
SonarQube-Dashboards -
Standardmäßig ist das Qualitätssicherungssystem
Sonar waymit 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 -
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 -
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"
-
-
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"
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 -
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,FixedundSafe.
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.
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
-
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
-
Erfordert die Berechtigung "Durchsuchen" für das/die angegebene(n) Projekt(e). komponente.
-
Erfordert die Berechtigung "Durchsuchen" für das/die angegebene(n) Projekt(e).
-
Erfordert eine der folgenden Berechtigungen:
- verwalten" auf globaler oder Projektebene
- analyse durchführen" auf globaler oder Projektebene
-
-
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
-
-
Um die SonarQube erkannten Hotspots abzurufen, wird der folgende SonarQube Endpunkt verwendet:
-
Erfordert die Berechtigung "Durchsuchen" für das/die angegebene(n) Projekt(e).
-
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.