在Travis CI上从forket repo构建拉取请求时,未授权执行任何SonarQube分析

时间:2016-09-26 21:15:40

标签: github gradle sonarqube travis-ci

我正在与Travis CI和SonarQube.com建立一个项目,当拉出请求来自存储库的分支时,一切顺利但当Travis从分叉存储库运行构建拉取请求时失败

从存储库中构建PR:https://travis-ci.org/PistachoSoft/dummy-calculator/builds/162905730

从分叉存储库构建PR:https://travis-ci.org/PistachoSoft/dummy-calculator/builds/162892678

存储库:https://github.com/PistachoSoft/dummy-calculator

在构建日志中可以看到这是错误:

You're not authorized to execute any SonarQube analysis. Please contact your SonarQube administrator.

我尝试但没有成功的事情:

  • 更新声纳令牌。
  • 使用组织中其他人授予的加密令牌。
  • 在SonarQube项目上授予'声纳用户'和'任何''执行分析'权限。

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:2)

首先,我提醒你注意一个重点:你应该对PR进行“标准”SonarQube分析 - 否则你的SonarQube.com上的项目将被中间分析“污染”彼此无关。标准分析必须仅在主开发分支上执行 - 主分支通常是“主”分支。请阅读我们示例项目的runSonarQubeAnalysis.sh file以了解如何实现这一目标。

现在,为什么你的尝试不起作用?仅仅因为当PR来自“外部世界”时(即,它不是您自己的PR),Travis将不会解码SONAR_TOKEN环境变量(您在YML文件中设置为“安全”)。这是一个安全约束,以防止任何人分叉您的仓库,使用echo $SONAR_TOKEN更新YML文件,提交PR和genlty等待Travis执行它以揭示安全的环境变量。

分析“外部”PR是我们即将开展的工作,以便OSS项目能够轻松,直接且安全地受益于此功能。