我正在与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.
我尝试但没有成功的事情:
我该怎么做才能解决这个问题?
答案 0 :(得分:2)
首先,我提醒你注意一个重点:你应该不对PR进行“标准”SonarQube分析 - 否则你的SonarQube.com上的项目将被中间分析“污染”彼此无关。标准分析必须仅在主开发分支上执行 - 主分支通常是“主”分支。请阅读我们示例项目的runSonarQubeAnalysis.sh file以了解如何实现这一目标。
现在,为什么你的尝试不起作用?仅仅因为当PR来自“外部世界”时(即,它不是您自己的PR),Travis将不会解码SONAR_TOKEN环境变量(您在YML文件中设置为“安全”)。这是一个安全约束,以防止任何人分叉您的仓库,使用echo $SONAR_TOKEN
更新YML文件,提交PR和genlty等待Travis执行它以揭示安全的环境变量。
分析“外部”PR是我们即将开展的工作,以便OSS项目能够轻松,直接且安全地受益于此功能。