github - 如何从 Jenkins 管道获取拉取请求ID

标签 github jenkins-pipeline github-organizations

我正在尝试使用Jenkins管道与Sonar一起分析源代码。要要求Sonar将结果通知Github,我需要指定Pull Request ID。

如何从Jenkins Pipelines获取此请求请求ID?

我们正在使用GitHub Organization Folder Plugin而不是GitHub pull request builder plugin来构建请求请求。这就是$ghprbPullId对我不起作用的原因。有什么想法如何以其他方式获取拉取请求ID?

最佳答案

Jenkins公开了一个名为CHANGE_ID的全局变量:


对于对应于某种形式的多分支项目
变更请求,将其设置为变更ID,例如拉取
申请号码。


仅为拉取请求构建填充此变量,因此您必须在分支源的管道配置中禁用分支构建并启用PR构建:

enter image description here

然后,我的管道步骤如下所示:

def PULL_REQUEST = env.CHANGE_ID

stage('Analysis') {
        withCredentials([[$class: 'StringBinding', credentialsId: '***', variable: 'GITHUB_ACCESS_TOKEN']]) {
            withSonarQubeEnv('Sonar') {
                withMaven(maven: 'M3') {
                    sh "mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar " +
                            "-Dsonar.analysis.mode=preview " +
                            "-Dsonar.github.pullRequest=${PULL_REQUEST} " +
                            "-Dsonar.github.oauth=${GITHUB_ACCESS_TOKEN}"
                }
            }
        }
    }

关于github - 如何从 Jenkins 管道获取拉取请求ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41695530/

相关文章:

maven - 在 Jenkins 管道中解析 pom.xml 文件

jenkins - 使用 groovy 在 jenkins 中编写 yaml 文件

github - 如何为 GitHub 组织添加自定义用户角色?

github - 将 GitHub 存储库移动到组织时处理 NPM 和 Bower 注册表项

git 产生 Gtk-WARNING : cannot open display

scala - 定义github依赖项时如何避免在IntelliJ中添加 'root' scala sbt项目?

http - 为什么浏览器不遵循呈现的 GitHub README.md 上图像资源的 HTTP 302 重定向?

docker - 错误 "The input device is not a TTY"

java - 在android上安装Java库[GIThub源代码]

GitHub:如何让用户成为组织的管理员?