批量修改所有以 budget-dt- 开头的流水线任务的分支

import jenkins.model.*

import hudson.model.*

import hudson.plugins.git.*

import org.jenkinsci.plugins.workflow.job.WorkflowJob

import org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition

// 1. 设置匹配前缀和新分支

def jobPrefix = "budget-dt-"

def newBranch = "*/dt-test"

// 2. 遍历所有流水线 Job (WorkflowJob)

Jenkins.instance.getAllItems(WorkflowJob.class).each { job ->

// 检查名字是否以 budget-dt- 开头

if (job.name.startsWith(jobPrefix)) {

println "--- 正在处理: ${job.name} ---"

def definition = job.getDefinition()

// 确保它是从 Git/SCM 获取脚本的流水线

if (definition instanceof CpsScmFlowDefinition) {

def scm = definition.getScm()

if (scm instanceof GitSCM) {

// 构建包含新分支的 SCM 配置

def newScm = new GitSCM(

scm.getUserRemoteConfigs(),

new BranchSpec(newBranch)\], scm.isDoGenerateSubmoduleConfigurations(), scm.getSubmoduleCfg(), scm.getBrowser(), scm.getGitTool(), scm.getExtensions() ) // 将新配置应用回 Job 并保存 job.setDefinition(new CpsScmFlowDefinition(newScm, definition.getScriptPath())) job.save() println "✅ 已成功更新分支为: ${newBranch}" } else { println "⚠️ 跳过: 该流水线不使用 Git 源码管理。" } } else { println "⚠️ 跳过: 该流水线不是通过 SCM 加载的(可能是直接写在界面上的脚本)。" } } } "批量修改执行完毕,请查看下方日志确认每个 Job 的结果。"

相关推荐
wgslucky1 天前
docker jenkins2.554 流水git拉取 没有在 SCM 配置或者插件中的 Git 存储库配置错误
jenkins·自动打包部署·jenkins获取git分支
金牌归来发现妻女流落街头1 天前
【用 Java API Client 操作 Elasticsearch】
java·elasticsearch·jenkins
难忘经典1 天前
Java进阶(ElasticSearch的安装与使用)
java·elasticsearch·jenkins
耀耀_很无聊2 天前
08_使用Jenkinsfile构建多环境Pipeline部署流程
jenkins
稀样3 天前
jenkins配置多分支流水线
jenkins
kaico20183 天前
jenkins的安装—windows环境
运维·jenkins
kaico20183 天前
jenkins值之job的配置
java·jenkins