【发布时间】:2016-12-05 06:43:29
【问题描述】:
我们正在尝试设置我们的 SonarQube 服务器 (5.6),以便任何人都可以使用 Sonar Scanner 运行声纳分析并将结果发布到 SonarQube。但是,我们希望限制用户仅针对某些项目密钥发布分析,以防止弄乱现有的项目历史记录。
我们已经对权限设置进行了很多尝试。假设我们有项目密钥 SomeProjectKey 和一个组 SomeGroup。所有分析均以 SomeGroup 成员的用户身份发布。 SomeGroup 被授予 SomeProjectKey 的所有权限,但我们尝试添加和删除的执行分析除外。结果可以在下面的矩阵中看到:
根据这些结果,在项目级别授予执行分析 (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 请求的行,与分析发布无关,没有错误,没有任何内容,即使在跟踪级别:
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。
【问题讨论】:
标签: permissions sonarqube