Back in July, I was lamenting that I missed Atlassian’s Stimulus Package. It’s back (thanks Brian!) and with a vengeance: their Starter “program” provides $10 licenses for full blown Atlassian awesomeness (JIRA, Confluence, Crowd, Bamboo, FishEye and GreenHopper), and you can also purchase support. Additionally, JIRA 4 is out.
After a couple of days of running into dead ends, I am finally able to drive JIRA via its SOAP interface sanely from something other than Java in an effort to automate small, repetitive tasks that are best left to tools. Without going into the details of what is it that I needed to get accomplished (which is not the key point of this post), I wanted to share a bit of the experience before I close shop for the day.
First, check out Igor Sereda’s presentation on JIRA Client, which offers many insights on general client-side JIRA programming. Second, have the JiraSoapService javadoc handy. Given the usual needs I deal with, I use Python quite a bit, which has served me very well for nearly the last 10 years, and it’s the workhorse of my tool development. But in this case, I ran into problems at almost every turn: SOAPpy cannot deal with dates, and ZSI ran into some issues as well. So I went to Ruby and jira4r (navigator, source). Amazingly elegant, it hides all the SOAP stuff from view, producing ridiculously compact code, and so far, working flawlessly.
Martin always knew I would end up diving into Ruby
I have been using Atlassian’s JIRA for quite some time now, and have delved into coaxing it to do things that go well beyond the standard workflows shipped with it. In the interest of full and fair disclosure, I’m a huge fan of Atlassian’s tools (Confluence is a very sweet wiki indeed), and I know a good deal of developer types who also like some of their other kit (FishEye and Crucible being top choices).
Part of what makes JIRA such a strong tool is the availability of an extensive plugin collection. Although I will at some point write a more detailed account of my JIRA adventures, I did want to post some of the plugins I use quite extensively (and, at the same time, thank their developers for creating them).
- The JIRA Advanced Mail Handler is an extension of the standard JIRA email handler; while the built-in plugin works quite nicely, this one quite a bit of punch to the creation and workflow of any issue. Kudos to Daniele Raffo.
- The JIRA Calendar Plugin shows issues and versions in a calendar format based on their due date, and its produced (but not supported) by Atlassian. If you run a production environment and have changes flying in and out of the environment, this is an invaluable plugin to get a sense for what’s happening when.
- The JIRA Charting Plugin is another great addition to Atlassian’s stable of JIRA plugins. It lets you slice and dice data and present it in a sensible matter.
- The JIRA Component Watcher Plugin, written by Ray Bartham, is great when different people need to be notified of things related to components they manage in a larger project (but who are not necessarily the owners of said component).
- The JIRA Labels Plugin, for loose tagging of issues, ends up providing a decent way to organize issues and find like things later. Also by Atlanssian.
- The Jira Suite Utilities is a nice collection of workflow conditions and validators. A must have by Alexey Abashev.
Finally, and although it’s not a plugin proper, Bob Swift’s JIRA Command Line Interface is a great way to poke into JIRA for those of us who spend time with terminal windows.