2016-07-30 282 views
1

我们正在设置我们的SonarQube服务器(5.6),以便任何人都可以使用声纳扫描仪运行声纳分析并将结果发布到SonarQube。但是,我们希望限制用户只对某些项目键发布分析,以防止弄乱现有项目历史。如何限制每个项目的SonarQube执行分析权限?

我们已经玩了很多权限设置。假设我们有项目关键SomeProjectKey和一个组SomeGroup。所有分析都是在SomeGroup会员的用户下发布的。除了我们尝试添加和删除的执行分析以外,SomeGroup被授予了SomeProjectKey的所有权限。结果可以看出,在下面的矩阵:

SonarQube permission settings variants

基于这些结果,似乎准予执行分析(EA)在项目层面没有任何影响。要求全球EA能够发布分析。但是,这样可以让拥有全球EA的用户发布所有项目的分析结果。我们还没有找到任何方式来限制每个项目的发布。项目级别的EA许可似乎完全多余。

有什么办法可以让用户发布只有某些项目的分析?更确切地说,是否有办法让用户发布分析而不会授予全球EA?

感谢您的任何意见


编辑: 我把SonarQube日志级别来调试,但仍然毫无头绪。随着全球执行分析理所当然,一切工作正常和日志显示:

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晚e,我一直在度假。你描述的场景在我们的案例中不起作用。我将信息添加到原始问题。 –