We need to print Jenkins jobs URLs and GIT URL configured inside these jobs.
For example:
Assume my Jenkins URL is : http://localhost:8080 & my git URL is s
This works with classic jobs and workflow jobs:
import org.jenkinsci.plugins.workflow.job.WorkflowJob;
def printScm(project, scm){
if (scm instanceof hudson.plugins.git.GitSCM) {
scm.getRepositories().each {
it.getURIs().each {
println(project + "\t"+ it.toString());
}
}
}
}
Jenkins.instance.getAllItems(Job.class).each {
project = it.getFullName()
if (it instanceof AbstractProject){
printScm(project, it.getScm())
} else if (it instanceof WorkflowJob) {
it.getSCMs().each {
printScm(project, it)
}
} else {
println("project type unknown: " + it)
}
}
If you are using a WorkflowJob
then the below snippet should work for you.
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());
}
}
}
}
This worked for me:
Jenkins.instance.getAllItems(Job.class).each {
scm = it.getScm();
project = it.getAbsoluteUrl();
if (scm instanceof hudson.plugins.git.GitSCM) {
scm.getRepositories().each {
it.getURIs().each {
println(project.toString() +":"+ it.toString());
}
}
}
}
println "done"