Ich führe SonarQube gerade in ein großes Legacy-Projekt ein. Das bedeutet, dass es bereits Hunderte von Warnungen gibt. Im ersten Schritt möchte ich sicherstellen, dass keine neuen Warnungen aus unseren Feature-Zweigen kommen.
Um dies zu erreichen, möchte ich, dass die Sonar-Analyse für jeden Feature-Zweig ausgeführt wird, mit dem Hauptzweig verglichen wird und den Committer alarmiert wird, falls neue Warnungen eingeführt wurden.
Nehmen Sie die folgende Situation an:
MyProject 1.0-SNAPSHOT
ist der Name und die Version des Projekts auf SonarQube. Es hat 100 Warnungen. Es repräsentiert den Zweig develop
. Die leak period
ist die Analyse von vor 1 Tag. Das funktioniert sehr gut, ich kann sehen, welche neue Warnungen seit gestern eingeführt wurden.
Entwickler arbeiten an feature/somefeature
Zweigen. Wenn sie eine Pull-Anforderung öffnen, möchte ich, dass eine Sonaranalyse in diesem Zweig ausgeführt wird. Das funktioniert gut, aber ich kann das leak version
nicht auf MyProject 1.0-SNAPSHOT
von gestern setzen, da dieser Zweig von SonarQube als separates Projekt angesehen wird, obwohl ich sonar.projectKey
auf gesetzt habe den gleichen Namen und ich habe auch versucht, mit der Eigenschaft sonar.branch
herumzuspielen.
Das gewünschte Ergebnis ist:
entwickeln - & gt; 100 Warnungen
feature / somefeature - & gt; 102 Warnungen
Zeigen Sie im SonarQube-Dashboard von feature/somefature
"2 neue Warnungen" an.
Kann es mit Sonar selbst gemacht werden, oder muss ich mein eigenes Programm mit der Sonar-REST-API schreiben?
Sie sollten Zweig-Plugin verwenden, um Zweige nur für neue Ausgaben zu analysieren. Dieses Plugin hat ein entsprechendes Quality Gate:
Für kurzlebige Branchen gibt es eine Art hart codiertes Qualitätsgate, das sich nur auf neue Themen konzentriert.
Es werden nur Probleme erstellt, wenn neue Fehler oder Sicherheitslücken vorhanden sind.
Laut der Plugin-Dokumentation sollten alle Ihre Feature-Zweige als kurzlebige Zweige identifiziert werden.
HINWEIS: Das Zweigstellen-Plug-in ist unter SonarSource lizenziert und ist in nonfree