JIRA Plugin

New homepage
The JIRA plugin is being maintained by its owner/maintainers from a new home. The plug-in is still compatible with Hudson, however, the entry points for documentation and issue reporting have been combined in order to provide a single point of entry.


Plugin Information

Plugin ID jira
Latest Release 1.36-h-1
Latest Release Date Aug 23, 2012
Sources Github
Support Eclipse Hudson Forum
Issue Tracking Eclipse Bugzilla

This plugin integrates Atlassian JIRA to Hudson.

Quick Overview

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.If you need the comment only to be visible to a certain JIRA group, e.g. Software Development, enter the groupname. 

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.

Labels:

plugin-maven plugin-maven Delete
plugin-external plugin-external Delete
tier3-compat-plugin tier3-compat-plugin Delete
tier3-hudson-plugin tier3-hudson-plugin 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, 2009

    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, 2009

    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.

  9. Jan 22, 2010

    Jay Blanton says:

    Love the plugin so far! The one question I have is, if I checkin something to S...

    Love the plugin so far!

    The one question I have is, if I checkin something to Subversion with my JIRA issue,
    the plugin correctly attaches that JIRA issues to my Hudson build console, just as
    you have explained.

    But if I stop my build for some reason, and retry my build, there is no longer a link
    between the JIRA issue and my Hudson build. It appears that the JIRA links in the
    Hudson build only show on the first time you build a Hudson revision. If I keep
    building that same Subversion revision, the JIRA link is only on the first build.

    Thanks for your help!

  10. Apr 29, 2010

    Oliver Weichhold says:

    When using a HTTPS Jira Url like this: https://18.4.45.13/jira The JIRA Plugin ...

    When using a HTTPS Jira Url like this: https://18.4.45.13/jira

    The JIRA Plugin Config Section in Hudson always displays the warning: "java.security.cert.CertificateException: No subject alternative names present". Even though the self-signed certificate was imported into the correct keystore on the machine running Hudson.

    I've figured out that this might be the effect of using a self-signed certificate that lacks the "Subject Alternate Name" Extension. I've never seen this extension being in use for self-signed certificates so it would be nice if there would be an option in Hudson to suppress this error.

  11. Jun 30, 2010

    pritesh patel says:

    How do i make it work with HTTPS Jira URL. If i enter http://example.jira.com i...

    How do i make it work with HTTPS Jira URL.

    If i enter http://example.jira.com it does not redirect to the https. My real URL is https://example.jira.com/secure/Dashboard.jspa

    If i enter the https URL then it says unable to connect.

    Any solution to this ?

  12. Jul 02, 2010

    Adam A says:

    Anyone tried to use this plugin with JIRA behind IIS proxy? I'm getting 401.2 Un...

    Anyone tried to use this plugin with JIRA behind IIS proxy? I'm getting 401.2 Unauthorized when attemting to configure the plugin..

  13. Jul 21, 2010

    Nick says:

    I am trying to connect to a Jira over https but I continue to get the following ...

    I am trying to connect to a Jira over https but I continue to get the following error.

    sun.security.validator.ValidatorException: PKIX path building failed:
    sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

    In our case the Jira certificate is self signed. I found the following article that adds the certificate in order to trust it and have successfully followed the instructions and added the certificate to the store but I continue to get this error in the configuration dialog.

    http://blogs.sun.com/andreas/entry/no_more_unable_to_find

    Has anyone found a solution to this problem? Thanks in advance.

    1. Dec 14, 2010

      stijn says:

      I used to have the same problem; two things were causing this: 1. server name wa...

      I used to have the same problem; two things were causing this:
      1. server name was some.domain.com but I always used to enter the IP address directly; the certificate also used the IP. Changed the certificate to use the some.domain.com name
      2. make sure the certificate is imported into the correct keystore. I have both x86 and x64 versions, forgot to add it to both keystores, took me a while to figure that out.

      To import the certificates, I used Internet Explorer to get the cert and export it, then simply import using keytool:

      keytool -import -keystore JAVAHOME/lib/security/cacerts -file mycert.cer

  14. Aug 26, 2010

    Alan K says:

    Is there a way I can record my SVN revision number in Jira? We use it for build...

    Is there a way I can record my SVN revision number in Jira? We use it for build numbers of our products. It would be really nice if I could take this from a var I have defined or some other method.

  15. Jan 03, 2011

    Juergen Hellwig says:

    It seems as if the plugin does not support Jira 4.2! Is this correct?

    It seems as if the plugin does not support Jira 4.2! Is this correct?