如何限制每个项目的SonarQube执行分析权限?

时间:2016-07-30 19:10:46

标签: permissions sonarqube

我们正在尝试设置我们的SonarQube服务器(5.6),以便任何人都可以使用Sonar Scanner运行Sonar分析并将结果发布到SonarQube。但是,我们希望限制用户仅针对某些项目键发布分析,以防止弄乱现有项目历史记录。

我们已经玩了很多权限设置。假设我们有项目密钥SomeProjectKey和一个组SomeGroup。所有分析均在SomeGroup成员的用户下发布。除了我们尝试添加和删除的Execute Analysis之外,SomeGroup被授予了SomeProjectKey的所有权限。结果可以在下面的矩阵中看到:

enter image description here

基于这些结果,似乎在项目级别上授予执行分析(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

在项目级别授予Executed Analysis(授予所有项目权限),有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 个答案:

答案 0 :(得分:2)

你可能会错过一些东西并混合了一些权限,因为你想要实现的就是使用SONAR-7174在SonarQube 5.4中完成的工作。

以下方案有效:

  1. 您创建了一个项目
  2. 您将此项目的所有权限(包括“执行分析”)授予用户Foo
  3. 使用用户Foo
  4. 的登录名/密码(或更好:带有令牌)运行分析
  5. 分析已成功推送和处理