如何在Jenkins管道中获取repo名称

sri*_*ini 6 jenkins jenkins-pipeline

我正在使用使用Groovy样式脚本的Jenkins Scripted Pipeline,并创建了一个Jenkins文件来描述管道.我需要创建文件夹名称与git repo name相同的工作区,然后签出工作区文件夹中的代码.我的问题是,在做之前checkout scm,有没有办法知道git repo名称或git repo url?

her*_*erm 11

String determineRepoName() {
    return scm.getUserRemoteConfigs()[0].getUrl().tokenize('/')[3].split("\\.")[0]
}
Run Code Online (Sandbox Code Playgroud)

这个相对丑陋的代码是我用来获取repoName的代码.关键是repo的URL存储在:

scm.getUserRemoteConfigs()[0] .getUrl()

从那里你需要做一些字符串操作来得到你想要的.


更新: __CODE__

这也适用于具有更深层次结构的存储库(https:// domain/project/subproject/repo或ssh git repo,它在开始时不包含两个//.

  • 我刚刚做了 `.tokenize('/.')[-2]` ,它似乎更简洁地得到了相同的结果。 (2认同)