Apache Lucene project is now apparently using Hudson for their nightly builds. While looking at how they are doing, I noticed that one of them suggested using Bamboo because of a nicer JIRA and Confluence integration. 

So I decided to write a Hudson plugin for JIRA. It's famous enough, so I figured there are probably more Hudson users who'd enjoy such a plugin. JIRA has a SOAP interface, so it was relatively easy to talk to it from Hudson.

First, you need to go to Hudson's system config screen to tell Hudson where's your JIRA. This plugin has an optional feature to update JIRA issues with a back pointer to Hudson build pages. This allows the submitter and watchers to quickly find out which build they need to pick up to get the fix. If you also want to use this feature, you need to supply a valid user id/password.

systemConfig.png

JIRA also needs to be configured for Hudson to remotely login. Go to the general configuration screen and enable remote API calls. Again, this is only needed if you use the abovementioned optional feature, and if you forget to do so, Hudson will nicely warn you.

jiraConfig.PNG

With that, JIRA keys in changelogs are now hyperlinked to the corresponding JIRA pages (complete with tooltips!)

jiraLink.PNG

To have Hudson update JIRA issues with back pointers to builds, you also need to configure jobs. I figured you might not always have write access to the JIRA (say you have a Hudson build for one of the Apache commons project that you depend on), so that's why this is optional.

jobConfig.png

And the following screen shows how JIRA issue is updated.

jiraIssue.png

By taking advantages of Hudson's fingerprint feature, when your other projects that depend on this project picks up a build with a fix, those build numbers can be also recorded to JIRA. This is quite handy when a bug is fixed in one of the libraries, yet the submitter wants a fix in a different project. This happens often in my work, where a bug is reported against JAX-WS but the fix is in JAXB.

This plugin can be downloaded from Hudson website, and it works with the latest Hudson 1.86. If you have ideas about how to improve this plugin, plase submit RFEs (or better yet, join us as a developer.)