在 jenkins pull request builder 作业中获取源分支名称的正确方法是什么

what is the right way to get source branch name in the jenkins pull request builder job

我想在 Jenkins 拉取请求生成器的 sonarqube 上使用分支分析功能。

我的存储库有一个 sonar.gradle 文件。如果我设置属性 sonar.branch.name = "featurebranch" 和 sonar.branch.target = "master" 并创建一个 PR,我看到 featurebranch 的 sonarqube 分析已更新

我想使用环境变量 ghprbSourceBranch(根据 link 作为环境变量可用)和 set property sonar.branch.name = $ghprbSourceBranch in sonar.gradle file sonar.gradle 文件

中的这行代码导致我的 PR 构建失败

property "sonar.branch.name", $ghprbSourceBranch

我尝试了以下方法,但都失败了

property "sonar.branch.name", ${ghprbSourceBranch}

property "sonar.branch.name", ${env.ghprbSourceBranch} property "sonar.branch.name", System.getenv("CHANGE_BRANCH") property "sonar.branch.name", System.getenv("TARGET_BRANCH") property "sonar.branch.name", System.getenv("BRANCH_NAME")

我在 Jenkins 中使用 Sonar Enterprise 7.9 的 Pull-Request 分析功能和以下参数,但使用 Sonar CLI 运行 扫描:

sonar.pullrequest.key=${env.CHANGE_ID}
sonar.pullrequest.base=${env.CHANGE_TARGET}
sonar.pullrequest.branch=${env.CHANGE_BRANCH}

PR 装饰需要 SonarCloud scanner Github App

sonar.pullrequest.provider=GitHub
sonar.pullrequest.github.repository=yourOrg/yourRepo

另见 Sonar Docs