I'm considering developing a JIRA plugin and know what I'd "like" but I'm not sure if JIRA's extensibility will accomodate these features. I believe most of these can be done (right?) but for the ones that can't are there alternative UX metaphors that others have used? For instance, for #4 I've seen other plugins require you save a saved query and then reference that query elsewhere to accomplish the work on the set of records.
1. Create three new issue types with custom icons, workflows, and fields
2. Create new link types that can be used between these three new issue types
3. Provide an extension to the REST API to import and export these records
4. Add an option to the "tools" menu in the issue navigator that will operate on the records selected in the navigator.
5. On the issue edit screens for these new issue types add new Actions
6. When the new issue types are edited or their workflow state changes, intercept that event and update other related records
I'd probably say that most of these can be done. #1-3 - you'll probably want to read through the javadoc at https://docs.atlassian.com/jira/6.0/ and identify the proper services/managers to use - I'm guessing you'll want to look at the IssueLinkTypeManager and IssueTypeManager.
As far as #4 - You'll want to do a WebItem( https://developer.atlassian.com/display/JIRADEV/Web+Item+Plugin+Module ). I'm not sure of the extension point - but if you dig in JIRA's source you'll find the other ones in there.
Once you have #4 set up - #5 is just an Action or a mixture of Soy/Rest (again http://developer.atlassian.com has more info about these).
#6 is a JIRA Event listener - there's a tutorial at https://developer.atlassian.com/display/JIRADEV/Writing+JIRA+event+listeners+with+the+atlassian-event+library
I'd actually say items 1 and 2 are standard admin items to be done as a one-off by the administrators of the system. You could code for it, but they'd take two minutes per Jira installation and you wouldn't need to do them again.
For item 3, REST already exposes a lot of the data, so I'm wondering what your data is and why you think you'd need to extend the REST interface to expose it.
Daniel has already covered what I'd wave at for 4-6.
Thanks Daniel and Nic, great feedback. I guess #4 is the most worrisome for me: I took a quick peek at the WebItem capabilities but there's not a specific location to add to that Tool menu. So how rough does it get for a newbie to try and find that out and slug through JIRA source (is that available?) to find out the right ID to use? Not having done it I just wanted to get a sense of how far you need to learn JIRA source code to be effective.
If you have a license for JIRA - you should be able to download JIRA's source through http://my.atlassian.com. Once you have it down - just search in it for 'web-item'.There are various values documented on developer.atlassian.com but I don't see this one. I usually find another item in the area I want to put something and look for it (more than likely you'll want to search for the i18n string).
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!
Unfortunately there are no AUG chapters near you at the moment.Start an AUG