我正在使用使用Groovy样式脚本的Jenkins Scripted Pipeline,并创建了一个Jenkins文件来描述管道。我需要创建文件夹名称与git repo name相同的工作区,然后签出工作区文件夹中的代码。
我的问题是,在做fun getFromEnd(index: Int) = asReversed()[index]
之前,有没有办法知道git repo名称或git repo url?
答案 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,它们在开始时不包含两个//。