The following 'Groovy system' (requires Groovy plugin) build step script works 
for Project subclasses, i.e. freestyle projects. This works well enough for me, 
you might need to adapt for other project types (like Maven).

It prints lists of projects by publisher/build wrapper/builder/trigger, and 
provides both the builder/... name and the name of the plugin it came in. It 
assumes Jenkins context is at / (i.e. http://host/ , not http://host/jenkins/ ) 
for links to jobs. Sorted ascending by number of jobs.

--------

def projects = 
jenkins.model.Jenkins.instance.getAllItems(hudson.model.Project.class)

def projectsByDescriptor = [:]

for (def p in projects) {
  def items = new ArrayList(p.publishers.values())
  items.addAll(p.builders)
  items.addAll(p.properties.values()) // haven't actually tried this line in an 
instance that has job properties
  items.addAll(p.triggers.values())
  items.addAll(p.buildWrappers.values())
  items.add(p)
  for (def item in items) {
    def desc = item.descriptor
    if (!projectsByDescriptor.containsKey(desc))
      projectsByDescriptor.put(desc, [])
    if (!projectsByDescriptor[desc].contains(p))
      projectsByDescriptor[desc].add(p)
  }
}

def s = ''<<''
for (def desc in projectsByDescriptor.keySet().sort { 
projectsByDescriptor.get(it).size() }) {
  s << '<h3>' + desc.displayName + '</h3>\n<small>' + 
(desc.plugin?.displayName?:'Core') + '</small><ul>'
  for (def proj in projectsByDescriptor.get(desc)) {
    s << "<li><a href=\"/${proj.url}\">${proj.fullDisplayName}</a></li>\n"
  }
  s << '</ul>\n'
}

def ws = Thread.currentThread()?.executable.workspace
ws.child('report').mkdirs()
ws.child('report/usage.html').write(s.toString(), 'UTF-8')

--------

This can be made available using the HTML Publisher plugin, folder is 'report', 
index page 'usage.html'.

WTFPL license if it matters.

On 07.10.2013, at 10:54, Steffen Breitbach <[email protected]> wrote:

> Hi everyone!
> 
> Is there a way to list all jobs that use a certain plugin?
> 
> Scraping the config.xmls would be OK as a last resort.
> 
> Thans in advance
> 
> Steffen
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to