Easy way to find what projects are using a plugin?

Abhi Vaishnav
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 9, 2014

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

7 votes
Answer accepted
Boris Georgiev _Appfire_
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 9, 2014

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

1 vote
Kyle Varga August 16, 2016

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. 

0 votes
Abhi Vaishnav
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 10, 2014

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...

Boris Georgiev _Appfire_
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 10, 2014

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

0 votes
Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
April 9, 2014

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.

R. Miranda January 4, 2018

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

Like ChandraPrakash likes this
Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 5, 2018

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.

Like Akbar likes this

Suggest an answer

Log in or Sign up to answer