JIRA Plugin

Plugin Information

Plugin ID jira
Latest Release 1.16
Latest Release Date Sep 02, 2008
Changes in Latest Release via Fisheye
Maintainer(s) n/a (java.net id: andy)
Issue Tracking Open Issues

This plugin integrates Atlassian JIRA to 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.
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.

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

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.

And the following screen shows how JIRA issue is updated.

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.

For curious mind, see this thread for how this works behind the scene.

Related Resources

History

Version 1.17 (upcoming)
  • Fixed an ArrayIndexOutOfBoundsException when JIRA issues contain '$' in the name.
Version 1.15 (2008/08/22)
  • Update JIRA if the build is UNSTABLE or better.  Previously only updated if the build was stable.
  • Include relevant SCM comment in the JIRA comment which should make JIRA ticket history more meaningful.
Version 1.13 (2008/08/05)
  • Fixed a performance issue in a large enterprise deployment of JIRA (issue #1703)
Version 1.12
  • A typo in the commit message shouldn't break builds (issue #1593)
  • Postpone JIRA updates until a successful build is obtained (issue #506)
Version 1.11
  • Added more logging and debug flag to examine issues that people are reporting (report)
Version 1.10
Version 1.9
Version 1.8
Version 1.7
  • Fixed NPE when username/password is not set (issue #828)
Version 1.6
  • Relaxed the JIRA project key regexp a little bit to allow numbers (issue #729)
Version 1.5
  • Issue hyperlinking is now smart enough not to be confused by strings that look like JIRA issue that actually aren't.
Version 1.4
  • Fixed a bug that prevented tooltips for JIRA issues from being displayed issue #694

Labels:

plugin-publisher plugin-publisher Delete
plugin-maven plugin-maven Delete
plugin-external plugin-external Delete
Enter labels to add to this page:
Wait Image 
Looking for a label? Just start typing.
  1. Aug 08, 2007

    Peter Schuebl says:

    It would be great if the pattern for the JIRA project key would be configurable ...

    It would be great if the pattern for the JIRA project key would be configurable so that non-standard project ID's could be matched.

    I think it's quite common to use numbers in project keys - especially if you have lots of projects.

    1. Aug 08, 2007

      Kohsuke Kawaguchi says:

      Please use the issue tracker for RFEs and bugs.

      Please use the issue tracker for RFEs and bugs.

      1. Sep 02, 2007

        Kohsuke Kawaguchi says:

        Implemented in 1.6.

        Implemented in 1.6.

  2. Nov 27, 2007

    Anonymous says:

    Could be nice to have a link to where it can be downloaded.

    Could be nice to have a link to where it can be downloaded.

    1. Dec 04, 2007

      Anonymous says:

      You can use the Download link at the top left, and navigate into the plugins dir...

      You can use the Download link at the top left, and navigate into the plugins directory, and then the jira plugin directory. Alternatively, here is a link to all the releases for the JIRA plugin:

      https://hudson.dev.java.net/servlets/ProjectDocumentList?folderID=7057&expandFolder=7057&folderID=0

      And as a by the way, it works a charm!

  3. Feb 28, 2008

    Felipe Leme says:

    Kohsuke,  It would be nice if the Hudson Jira and Perforce plugins are int...

    Kohsuke,

     It would be nice if the Hudson Jira and Perforce plugins are integrated. In the project I'm working one, Jira and Perforce are integrated (using a standard plugin I believe), so a Perforce changelist is associated with a perforce job whose name matches a Jira issue. When I access the Hudson changes page, it shows the job name (for instance, HUDSON-2), but without a link to the Jira issue.

     I'm not sure if this is an issue on the Jira Plugin, Perforce Plugin, or both, so I'm posting it here (instead of opening a ticket).

    -- Felipe 

    1. Feb 29, 2008

      Kohsuke Kawaguchi says:

      Again, please use the issue tracker for RFEs and bugs. We can reassign tickets t...

      Again, please use the issue tracker for RFEs and bugs. We can reassign tickets to the right plugin, but RFE left here will likely be simply forgotten.

  4. Sep 15, 2008

    Rex Morrey says:

    Is there a way to change the format of the information passed to Jira?  In ...

    Is there a way to change the format of the information passed to Jira?  In particular, is there a way to remove the link to the Hudson build page?

  5. Nov 05, 2008

    Fred Hoare says:

    Does this plugin support and https connection to Jira?  I can't get it to d...

    Does this plugin support and https connection to Jira?  I can't get it to display the links to Jira or make updates to the Jira issues.

  6. Jan 16, 2009

    JiraUser1 says:

  7. Aug 18

    Frank says:

    The issue tracker is currently down, so I'll post my problem here. When the Jira...

    The issue tracker is currently down, so I'll post my problem here. When the Jira issue key given in the commit comment does not exist (the committer made a typo, for example), the build fails. See exception below. In my view this information should be shown in the console output, but not cause the build to fail.

    Updating EXAMPLE-123
    FATAL: null
    AxisFault
     faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
     faultSubcode:
     faultString: com.atlassian.jira.rpc.exception.RemotePermissionException: This issue does not exist or you don't have permission to view it.
     faultActor:
     faultNode:
     faultDetail:
        {}com.atlassian.jira.rpc.exception.RemotePermissionException:null
        {http://xml.apache.org/axis/}hostname:example.jira.com
    
    com.atlassian.jira.rpc.exception.RemotePermissionException: This issue does not exist or you don't have permission to view it.
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at java.lang.Class.newInstance0(Class.java:355)
        at java.lang.Class.newInstance(Class.java:308)
        at org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:104)
        at org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:90)
        at hudson.plugins.jira.soap.RemotePermissionException.getDeserializer(RemotePermissionException.java:75)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.axis.encoding.ser.BaseDeserializerFactory.getSpecialized(BaseDeserializerFactory.java:154)
        at org.apache.axis.encoding.ser.BaseDeserializerFactory.getDeserializerAs(BaseDeserializerFactory.java:84)
        at org.apache.axis.encoding.DeserializationContext.getDeserializer(DeserializationContext.java:464)
        at org.apache.axis.encoding.DeserializationContext.getDeserializerForType(DeserializationContext.java:547)
        at org.apache.axis.message.SOAPFaultDetailsBuilder.onStartChild(SOAPFaultDetailsBuilder.java:157)
        at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
        at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:179)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:377)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2747)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
        at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
        at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
        at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
        at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
        at org.apache.axis.client.Call.invoke(Call.java:2767)
        at org.apache.axis.client.Call.invoke(Call.java:2443)
        at org.apache.axis.client.Call.invoke(Call.java:2366)
        at org.apache.axis.client.Call.invoke(Call.java:1812)
        at hudson.plugins.jira.soap.JirasoapserviceV2SoapBindingStub.addComment(JirasoapserviceV2SoapBindingStub.java:3773)
        at hudson.plugins.jira.JiraSession.addComment(JiraSession.java:70)
        at hudson.plugins.jira.Updater.perform(Updater.java:84)
        at hudson.plugins.jira.JiraIssueUpdater.perform(JiraIssueUpdater.java:24)
        at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:36)
        at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:480)
        at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:466)
        at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:454)
        at hudson.model.Build$RunnerImpl.post2(Build.java:145)
        at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:438)
        at hudson.model.Run.run(Run.java:1113)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
        at hudson.model.ResourceController.execute(ResourceController.java:93)
        at hudson.model.Executor.run(Executor.java:122)
    
  8. Aug 20

    J. Longman says:

    The Marvelution Jira Hudson integration looks very interesting. I haven't trie...

    The Marvelution Jira Hudson integration looks very interesting. I haven't tried it yet, but one feature that it has solves a lot of complaints with this plugin, which is hudson polluting the comments. Especially with matrix builds. We had an issue with 2 (user) comments and 16 hudson commits. Noisy.