Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Github 从Travis CI上的forket回购生成拉取请求时,无权执行任何SonarQube分析_Github_Gradle_Sonarqube_Travis Ci - Fatal编程技术网

Github 从Travis CI上的forket回购生成拉取请求时,无权执行任何SonarQube分析

Github 从Travis CI上的forket回购生成拉取请求时,无权执行任何SonarQube分析,github,gradle,sonarqube,travis-ci,Github,Gradle,Sonarqube,Travis Ci,我正在与Travis CI和SonarQube.com建立一个项目,当从存储库的分支发出拉请求时,一切都会顺利进行,但当Travis从分叉存储库运行拉请求构建时,一切都会失败 从存储库中生成PR: 从分叉存储库中生成PR: 存储库: 从构建日志中可以看出,这是一个错误: You're not authorized to execute any SonarQube analysis. Please contact your SonarQube administrator. 我尝试过但没有成功的事

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

从存储库中生成PR:

从分叉存储库中生成PR:

存储库:

从构建日志中可以看出,这是一个错误:

You're not authorized to execute any SonarQube analysis. Please contact your SonarQube administrator.
我尝试过但没有成功的事情:

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

我能做些什么来解决这个问题?

首先,我要提醒您注意一个重要的问题:您不应该在PR上运行“标准”SonarQube分析-否则您在SonarQube.com上的项目将被相互无关的中间分析“污染”。标准分析必须仅在主要开发分支上执行——通常是“主”分支。请阅读我们的示例项目,了解如何实现这一点

现在,为什么你的尝试不起作用?仅仅是因为当PR来自“外部世界”(即,当它不是您自己的PR)时,Travis不会解码SONAR_令牌环境变量(您在YML文件中已设置为“安全”)。这是一个安全约束,用于防止任何人放弃您的回购,使用
echo$SONAR_令牌更新YML文件,提交PR,然后genlty等待Travis执行它以公开安全环境变量

分析“外部”PR是我们很快将要做的事情,因此这对于OSS项目来说是简单、直接且安全的,可以从这个特性中获益