【问题标题】:Repo URL of all jobs through jenkins groovy通过 jenkins groovy 获取所有作业的回购 URL
【发布时间】:2018-10-09 12:43:07
【问题描述】:

是否可以在 Jenkins 脚本控制台中使用 groovy 获取 Jenkins 作业的 git scm url?

【问题讨论】:

  • 欢迎来到 SO。你能更详细地描述你的问题吗?例如。通过添加您迄今为止尝试过的内容、描述您的问题的命令或屏幕截图。另请查看帮助中心,尤其是askingminimal examples。谢谢。
  • 我正在尝试解析 config.xml 以获取 repo url,但出现以下错误:org.xml.sax.SAXParseException;行号:1;列号:1;序言中不能有内容。在 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1239) 在 com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java: 643) 在 groovy.util.XmlSlurper.parseText(XmlSlurper.java:286) 的 groovy.util.XmlSlurper.parse(XmlSlurper.java:260) 的 groovy.util.XmlSlurper.parse(XmlSlurper.java:207)
  • 你能分享你的代码和问题中的错误吗?

标签: jenkins groovy jenkins-groovy


【解决方案1】:

是的,有可能:

item = Jenkins.instance.getItemByFullName("JOB_NAME")
println item.getScm().getUserRemoteConfigs()[0].getUrl()

如果您想遍历所有支持 Git 的作业,您可以使用以下脚本:

Jenkins.instance.getAllItems(hudson.model.AbstractProject.class).each {it -> 
  scm = it.getScm()
  if(scm instanceof hudson.plugins.git.GitSCM)
  {
    println scm.getUserRemoteConfigs()[0].getUrl()
  }
}
println "Done"

【讨论】:

  • 非常感谢您的评论,是否有可能也列出存储库中的作业。请指导。谢谢
  • 嗨 Krzysztof Błażełek,Jenkins.instance.getAllItems().each {it -> if(it instanceof com.cloudbees.hudson.plugins.folder.Folder) { item = Jenkins.instance.getItemByFullName( it.fullName) println item.getScm().getUserRemoteConfigs()[0].getUrl()}}
  • 我添加了示例脚本,它遍历所有支持 GitSCM 的作业并打印它们的远程 url。
  • 这为我节省了很多时间!我不知道我应该告诉我的老板我有空还是假装我一直在努力梳理数百个工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
  • 2017-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多