2016-07-30 3 views
1

мы пытаемся настроить наш сервер SonarQube (5.6), чтобы каждый мог запустить анализ сонара с помощью Sonar Scanner и опубликовать результаты в SonarQube. Однако мы хотим ограничить пользователей публикацией анализа только для определенных ключей проекта, чтобы предотвратить испортить существующие истории проектов.Как ограничить выполнение разрешения SonarQube на проект?

Мы немного поиграли с настройками разрешений. Допустим, у нас есть ключ проекта SomeProjectKey и группа SomeGroup. Весь анализ был опубликован под пользователем, который является членом SomeGroup. SomeGroup получил все разрешения SomeProjectKey, за исключением Execute Analysis, которые мы пытались добавить и удалить. Результаты можно увидеть в следующей матрице:

SonarQube permission settings variants

Основываясь на этих результатах, представляется, что предоставление Выполнить анализ (EA) на уровне проекта не имеет никакого эффекта. Требуется, чтобы глобальный эксперт мог опубликовать анализ. Это, однако, позволяет пользователям с предоставленным глобальным EA публиковать анализ для всех проектов. Мы не нашли способа ограничить публикацию для каждого проекта. Разрешение EA на уровне проекта кажется полностью избыточным.

Есть ли способ, позволяющий пользователям публиковать анализ только для определенных проектов? Точнее, есть ли вообще способ разрешить пользователям публиковать анализ без предоставления им глобального EA?

Спасибо за любые советы


Edit: Я перевернул уровень журнала SonarQube для отладки, но до сих пор понятия не. В связи с глобальными Execute анализ как должное, все работает отлично, а журнал показывает:

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 

С Выполненный анализ предоставленного на уровне проекта (все разрешения проекта предоставляется), есть 403 HTTP код состояния с телом ответа:

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

журнал SonarQube не содержит информацию о том, что случилось, есть только строка с запросом POST принимается, больше ничего не связано с публикацией anaylysis, без ошибок, ничего, даже на уровне следов:

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 

Мы постараемся обновить до 6.0.

ответ

1

Возможно, вы что-то пропустили и смешали некоторые разрешения, потому что то, что вы хотите достичь, это именно то, что было сделано в SonarQube 5.4 с помощью SONAR-7174.

Следующий сценарий работы:

  1. Вы создаете проект
  2. Вы предоставляете все права (в том числе «Выполнить анализ») этого проекта к пользовательскому Foo
  3. Вы запускаете анализ с логином/пароль (или лучше: с маркером) от пользователя Foo
  4. анализ успешно толкали и обрабатываются
+0

к сожалению для конца RESPONS Я был в отпуске. Сценарий, который вы описали, не работает в нашем случае. Я добавил информацию к исходному вопросу. –

Смежные вопросы