groovy, чтобы перечислить вакансии Jenkins с URL GIT, используемым в вакансиях - PullRequest
0 голосов
/ 08 ноября 2018

Нам нужно напечатать URL-адреса заданий Jenkins и URL GIT, настроенные внутри этих заданий.

Например:

Предположим, мой URL Дженкинса: http://localhost:8080 и мой URL-адрес git ssh: // git: 424

Если я запускаю отличный код из Jenkins, он должен вернуть:

http://localhost:8080/job_name1 | ssh: // git: 424 / repo_name1 (URL-адрес GIT, настроенный в разделе SCM для job_name1)

http://localhost:8080/job_name2 | ssh: // git: 424 / repo_name2 (URL-адрес GIT, настроенный в разделе SCM для job_name2)

У меня есть код ниже для списка рабочих мест :

Jenkins.instance.getAllItems(AbstractProject.class).each {it ->
println it.fullName;
}

и ниже код для перечисления значения SCM :

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"

Приведенный выше код сначала возвращает URL-адреса заданий Jenkins, а затем URl SCM, но мне нужно вручную сопоставить, какой SCM принадлежит тому или иному URL-адресу Jenkins.

Есть ли способ, я могу напечатать URL задания Дженкинса и его значение SCM, используя groovy.

Ценю помощь!

1 Ответ

0 голосов
/ 09 ноября 2018

Если вы используете WorkflowJob, то приведенный ниже фрагмент кода должен работать для вас.

Jenkins.instance.getAllItems(Job.class).each{
scm = it.getTypicalSCM();
project = it.getAbsoluteUrl();
if (scm instanceof hudson.plugins.git.GitSCM) {
scm.getRepositories().each{
    it.getURIs().each{
        println(project.toString() +":"+ it.toString());
    }
  }
 }
}
...