我想构建一个集成多个存储库的 Pipeline。
总体思路:
- 提供分支名称作为输入。
- 使用 GitHub-API 在多个项目中查找 Pull-Requests,这些项目是从具有该名称的分支创建的。
- 从多个存储库制作(浅)克隆,检查指定的 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/*'
}
关于git - 如何使用 Jenkins Pipeline 检查 Pull-Request?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49114011/