通过脚本获取Jenkins项目名和git地址的对应关系

Jenkins 2.289.2-系统管理-脚本命令行 Jenkins.instance.getAllItems(hudson.model.Job.class).each { job -> // 先获取项目名(避免后续操作失败导致 jobName 未定义) def jobName = "[未知

Jenkins 2.289.2-系统管理-脚本命令行

Jenkins.instance.getAllItems(hudson.model.Job.class).each { job ->
  // 先获取项目名(避免后续操作失败导致 jobName 未定义)
  def jobName = "[未知项目]"
  try {
    jobName = job.fullName // 确保 jobName 在 try 块外已定义
    
    // 检查项目是否有 SCM 配置
    def scm = job.scm
    if (scm instanceof hudson.plugins.git.GitSCM) {
      def gitUrls = scm.userRemoteConfigs*.url.join(", ")
      println("项目: ${jobName} | Git 地址: ${gitUrls}")
    } else {
      println("项目: ${jobName} | Git 地址: [未配置 Git 仓库]")
    }
  } catch (Exception e) {
    // 如果 job.fullName 获取失败,尝试通过其他方式获取名称
    try {
      jobName = job.name // 使用简单名称(非完整路径)
    } catch (Exception ignored) {}
    println("项目: ${jobName} | 错误: ${e.message}")
  }
}

LICENSED UNDER CC BY-NC-SA 4.0
Comment