如何通过避免遍历所有jenkins作业(比如5000个作业)来最小化此代码的复杂性
我正在使用Groovy脚本将jenkins作业的SCM url从如何通过避免遍历所有jenkins作业(比如5000个作业)来最小化此代码的复杂性,jenkins,groovy,hudson,Jenkins,Groovy,Hudson,我正在使用Groovy脚本将jenkins作业的SCM url从gitlab更改为github。有什么方法可以最小化代码的复杂性吗 我使用了Jenkins.instance.items.each{},它遍历了我的Jenkins中的所有作业 import hudson.plugins.git.* import jenkins.* import jenkins.model.* def modifyGitUrl(url) { def newurl = url.replace("source"
gitlab
更改为github
。有什么方法可以最小化代码的复杂性吗
我使用了Jenkins.instance.items.each{}
,它遍历了我的Jenkins中的所有作业
import hudson.plugins.git.*
import jenkins.*
import jenkins.model.*
def modifyGitUrl(url) {
def newurl = url.replace("source", "destination")
return newurl
}
def modifyGitID(credentialsId) {
def newID = ("Jenkins User ID")
return newID
}
Jenkins.instance.items.each {
if(it.name == "expected name"){
if (it.scm instanceof GitSCM) {
def oldScm = it.scm
def newUserRemoteConfigs = oldScm.userRemoteConfigs.collect {
new UserRemoteConfig(modifyGitUrl(it.url), it.name, it.refspec, modifyGitID(it.credentialsId))
}
def newScm = new GitSCM(newUserRemoteConfigs, oldScm.branches, oldScm.doGenerateSubmoduleConfigurations,
oldScm.submoduleCfg, oldScm.browser, oldScm.gitTool, oldScm.extensions)
it.scm = newScm
it.save()
}
}
}
如果您只需要一个项目的名称:
Jenkins.get().itemMap['expected name']
可能更适合此类问题