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

时间:2017-08-15 00:33:03

标签: jenkins jenkins-pipeline

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

1 个答案:

答案 0 :(得分:9)

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

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

  

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

从那里你需要做一些字符串操作来获得你想要的东西。

更新

String determineRepoName() {
    return scm.getUserRemoteConfigs()[0].getUrl().tokenize('/').last().split("\\.")[0]
}

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