git - 如何使用 Jenkins Pipeline 检查 Pull-Request?

标签 git jenkins github jenkins-pipeline

我想构建一个集成多个存储库的 Pipeline。

总体思路:

  1. 提供分支名称作为输入。
  2. 使用 GitHub-API 在多个项目中查找 Pull-Requests,这些项目是从具有该名称的分支创建的。
  3. 从多个存储库制作(浅)克隆,检查指定的 Pull-Requests。

请注意,我不是试图从 Pull-Request 触发构建本身。 触发作业只是一个普通的流水线脚本。 所以 checkout scm 不适用于我的情况。 我很乐意从 Pull-Requests 中触发它。 但是,Jenkins 的许多多分支插件对我没有帮助,因为它们假定只有一个存储库是构建的一部分。

到目前为止,我基本上避免从 sh 步骤调用 git,因为那会让我接近于丢弃所有 Jenkins-Git 集成。

如何(如果有的话)使用管道 checkout 方法直接 checkout Pull-Request?

这是否在 checkout 方法的范围内? 可能,我正在寻找的是直接与 Jenkins 的 JGit 客户端交互,此时我不妨使用 sh 命令...

最佳答案

事实证明,这可以通过在 checkout 配置对象上设置 refspec 属性来实现:

checkoutConfig.with {
    branches = [[ name: 'pr/4711' ]]
    userRemoteConfigs[0].refspec = '+refs/pull/*/head:refs/remotes/origin/pr/*'
}

另见: https://gist.github.com/piscisaureus/3342247

关于git - 如何使用 Jenkins Pipeline 检查 Pull-Request?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49114011/

相关文章:

git - git有没有办法推送reflog?

git - 版本控制下的 Gettext .po 文件

maven - 在 Jenkins 插件中使用外部 dll 库

ruby - Jenkins Slave 不使用与本地终端相同的 Ruby 版本

github:协作者可以合并他们自己的拉取请求

git - 我应该在构建步骤中使用 `git push --force`

Git 和 WordPress(+ 管理插件和媒体)

java - 在 Jenkins 中构建失败,发现重复资源

git:提交多个文件但添加消息

R devtools 无法安装 - Ubuntu 20.04 - ‘pkgload’ 的包或命名空间加载失败