jenkins 如何以编程方式修改管道脚本的SCM源代码?

pes8fvy9  于 2023-04-29  发布在  Jenkins
关注(0)|答案(1)|浏览(186)

我有很多 jenkin 管道从 Bitbucket 加载scm脚本。我们正在将所有仓库迁移到 Git,我想知道是否有一种方法可以将管道脚本的scmhg 更改为 Git,而不使用脚本。
我在想从控制台执行的脚本?
谢谢!

djp7away

djp7away1#

经过调查,我发现这个解决方案将Mercurialscm更改为GitScm,其中包含存储库url的信息,以及1个管道的凭据,并且我可以将其扩展到管道列表

import hudson.plugins.git.*;

def it = Jenkins.instance.getItemByFullName("test-pipeline-scm")
def definition = it.getDefinition() 
String scriptPath = definition.getScriptPath()
String url =  definition.getScm().getSource()
String credentials = definition.getScm().getCredentialsId()
def scm = new GitSCM(GitSCM.createRepoList(url, credentials),
                Collections.singletonList(new BranchSpec("*/master")),
                false, Collections.<SubmoduleConfig>emptyList(),
                null, null, Collections.emptyList())
def newDefinition = new org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition(scm, scriptPath)
it.definition = newDefinition
it.save()

相关问题