2016-07-30 18 views
1

Wir versuchen, unseren SonarQube-Server (5.6) so einzurichten, dass jeder eine Sonar-Analyse mit Sonar Scanner ausführen und die Ergebnisse im SonarQube veröffentlichen kann. Wir möchten jedoch die Benutzer darauf beschränken, die Analyse nur für bestimmte Projektschlüssel zu veröffentlichen, um zu verhindern, dass vorhandene Projekthistorien zerstört werden.Wie kann die SonarQube-Berechtigung "Ausführungsanalyse" pro Projekt eingeschränkt werden?

Wir haben mit den Einstellungen der Berechtigungen ziemlich herum gespielt. Nehmen wir an, wir haben den Projektschlüssel SomeProjectKey und eine Gruppe SomeGroup. Alle Analysen wurden unter dem Benutzer, der Mitglied von SomeGroup ist, veröffentlicht. Der SomeGroup wurden alle Berechtigungen von SomeProjectKey zugewiesen, mit Ausnahme von "Analyse ausführen", die wir hinzufügen und entfernen wollten. Die Ergebnisse können Sie weiter unten in der Matrix zu sehen:

SonarQube permission settings variants

Basierend auf diesen Ergebnissen scheint es, dass die Gewährung der Analyse ausführen (EA) auf Projektebene keine Auswirkung. Es ist erforderlich, einen globalen EA zu haben, um die Analyse veröffentlichen zu können. Dies ermöglicht jedoch Benutzern mit gewährten globalen EA, die Analyse für alle Projekte zu veröffentlichen. Wir haben keine Möglichkeit gefunden, die Veröffentlichung pro Projekt einzuschränken. Die EA-Genehmigung auf Projektebene scheint völlig redundant zu sein.

Gibt es eine Möglichkeit, wie Benutzer Analysen nur für bestimmte Projekte veröffentlichen können? Genauer gesagt, gibt es überhaupt eine Möglichkeit, Benutzern zu ermöglichen, Analysen zu veröffentlichen, ohne ihnen globale EA zu gewähren?

Vielen Dank für jede Beratung


Edit: drehte ich die Sonarqube Protokollebene zu debuggen, aber immer noch keine Ahnung. Mit dem globalen Execute Analyse gewährt, funktioniert alles einwandfrei und das Protokoll zeigt:

2016.08.19 17:13:42 DEBUG web[http] POST /api/ce/submit?projectKey=zz.yyy:xxx-exp&projectName=xxx&projectBranch=xxx | time=4279ms 

2016.08.19 17:13:43 INFO ce[o.s.s.c.t.CeWorkerCallableImpl] Execute task | project=zz.yyy:xxx-exp&projectName=xxx&projectBranch=xxx | type=REPORT | id=AVajXWLL944EkuNYd4rD | submitter=pavel.sindelar 

2016.08.19 17:13:48 INFO ce[o.s.s.c.t.CeWorkerCallableImpl] Executed task | project=zz.yyy:xxx-exp&projectName=xxx&projectBranch=xxx | type=REPORT | id=AVajXWLL944EkuNYd4rD | submitter=pavel.sindelar | time=4456ms 

mit Ausgeführt Analyse gewährt auf Projektebene (alle Projektes Genehmigung erteilt), gibt es 403 HTTP-Statuscode mit Antworttext:

{"errors":[{"msg":"Insufficient privileges"}]} 

das Sonarqube Protokoll auf keine Informationen enthält, was falsch ist, gibt es nur die Zeile mit der POST-Anforderung empfangen wird, nichts mehr im Zusammenhang mit dem anaylysis Publishing, kein Fehler, nichts, auch auf Spurenebene:

2016.08.22 10:15:57 DEBUG web[http] POST /api/ce/submit?projectKey=project=zz.yyy:xxx-exp&projectName=xxx&projectBranch=xxx | time=564ms 

Wir werden versuchen, auf 6.0 zu aktualisieren.

Antwort

1

Sie vermissen wahrscheinlich etwas und haben einige Berechtigungen gemischt, denn was Sie erreichen möchten, ist genau das, was in SonarQube 5.4 mit SONAR-7174 getan wurde.

Das folgende Szenario funktioniert:

  1. erstellen Sie ein Projekt
  2. Sie alle gewähren die Berechtigungen (einschließlich „Analyse Execute“) dieses Projekts Benutzer Foo
  3. Sie führen eine Analyse mit dem Login/Passwort (oder besser: mit einem Token) von Benutzer Foo
  4. Die Analyse erfolgreich gedrückt wird und
+0

Sorry für die späten respons verarbeitet Ich war im Urlaub. Das von Ihnen beschriebene Szenario funktioniert in unserem Fall nicht. Ich habe die Info zur ursprünglichen Frage hinzugefügt. –