Easy way to find what projects are using a plugin?

Hey guys,

We are currently upgrading our JIRA instance all the pugins we have installed.

In the process, there are some plugins that have gone from being free to being paid.

I am not against paying for the non-free plugins, but I really don't want to if we are not using it.

With that regard, does anybody know how to track where (which project/workflow/filter) a plugin is being used?

I should point out, I am new to administring this instance of JIRA (new job, <1 month on it). So any help/pointers to make this easier for me would be much appreciated.

4 answers

1 accepted

Configuration Manager for JIRA can help you with that. Install an evaluation version of the add-on and create a "Project Snapshot" for each project and manually analyze the plugins used by each project. Here're the steps to analyze plugins used by a single project:

  1. Download the snapshot file
  2. Open the file in an editor
  3. Go to the end of file or search for "<plugins" - this will bring you to the section where the plugin dependencies of those project are listed. It will look simular to :
    &lt;plugins name="Custom Field Types &amp;amp; Searchers" key="com.atlassian.jira.plugin.system.customfieldtypes" version="1.0" vendor="Atlassian" vendorURL="http://www.atlassian.com" requiredBy="//@customFields.0 //@customFields.1 //@customFields.2 //@customFields.3"/&gt;
     &lt;plugins name="JIRA Agile" key="com.pyxis.greenhopper.jira" version="6.3.6.1" vendor="Atlassian" vendorURL="http://www.atlassian.com" requiredBy="//@customFields.4 //@customFields.5"/&gt;

The plugins listed there are referenced by the project through Custom Fields, Workflow condition or validator, post-function.

Note that if a plugin is not listed there this does not mean that it is not used, because as Nic said a plugin might contribute functionality without a project having direct or indirect reference to it. But this will help you to create an initial list of plugins that are currently in use so you can concentrate on analyzing the plugins not listed there manually, by reading their documentation to understand what functionality they contribute to JIRA.

Another thing that might help is using the same approach by creating a system snapshot and doing the same analisys of the system snapshot XML file. If a plugin is not listed there it means that there are no custom fields and/or workflow post-function, validators, conditions contributed by this plugin currently in use.So the plugins missing may go to the list of that needs manual check (in case any ot these is described as a plugin that contributes something more than a custom field or workflow post-function, validator, condition).

This is not a complete solution, but combined with what Nic suggested might reduce the manual work a lot.

PS: We're planning to release similar functionality that will allow you to analyze dependencies between configuration objects and projects in a JIRA instance

0 votes

There's no easy way to do this. If you think it through, "using a plugin" is too vague a description because plugins can add all sorts of functions, and those might not be directly referenced by the project/issuetpye at all.

However, a good start is to take an xml backup, then work out the classes used in the plugin you're interested in, and then physcially search the text of the xml for those classes.

Nic, how do you "work out the classes used in the plugin you're interested in"?

Add-ons are effectively zipped up blocks of files.  Use zip to unzip one, then look for the "atlassian-plugin.xml" in it.  That will have references to the main classes an add-on delivers - you'll see things like com.adaptavist.app.pluginname.thingy in it.

Hi Boris,

I am trying this plugin out right now and the initial response is that it looks very promissing.

Out of curiousity, do you guys have a REST API? Right now, I sigh a little at the thought of creating snapshots on each project individually. It would be great if there was a multi select project's or a way to do this through a script...

We have a REST interface but it's not public (we'll expose it officialy soon though).

Nearly the whole UI uses the REST interface, so you can "sniff" the rest calls you need by looking at the "Network" tab (on Chome dev tools F12)

Here's the resource you can use to create a project snapshot:

Resource: /rest/configuration-manager/api/1.0/snapshot

POST

Creates a snapshot

acceptable request representations:

  • application/json

Examples:

System snapshot
{
	"name":"My snapshot",
	"description":"Very nice snapshot",
	"type":"system"
}
Project snapshot
{
	"name":"My snapshot",
	"description":"Very nice snapshot",
	"type":"project",
	"projectKey":"PRJ"
}

available responses:

  • 201: Snapshot successfully created
  • 400: Request is invalid
  • 500: Error while creating snapshot

Kinda late, but I did this by connecting to postgres server:

 

 

select id,workflowname from jiraworkflows where descriptor LIKE '%hipchat%';



This was to determine if a workflow step was using a plugin. 

Suggest an answer

Log in or Join to answer
Community showcase
Sarah Schuster
Posted Jan 29, 2018 in Jira

What are common themes you've seen across successful & failed Jira Software implementations?

Hey everyone! My name is Sarah Schuster, and I'm a Customer Success Manager in Atlassian specializing in Jira Software Cloud. Over the next few weeks I will be posting discussion topics (8 total) to ...

2,811 views 11 18
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot