Skip to end of metadata
Go to start of metadata

Overview

jira4r is a Ruby client library useful for controlling Atlassian's JIRA issue tracking system. It is currently in uses as part of the Xircles product that manages the Codehaus and other open source development sites. While not under heavy development, it is in heavy use in production systems.

For users

Pre-requisites

jira4r requires

  • the latest SOAP4R gem. See the Installation Guide for details.
  • a modern JIRA (it is relatively straight-forward to rework the plugin to work against older JIRAs)

Examples

See the 2 minute walkthrough

See Examples for more information on how to use the library.

For developers

You can find more information about the project at http://xircles.rubyhaus.org/projects/jira4r

  • No labels

1 Comment

  1. I was unable to get "addAttachmentsToIssue" to work from Ruby; I kept getting "java.lang.IllegalArgumentException: argument type mismatch (SOAP::FaultError)".  I eventually followed several threads including http://jira.atlassian.com/browse/JRA-11693 and discovered that since JIRA 3.13.3 there is an API method addBase64EncodedAttachmentsToIssue which has a more straight-forward method signature.  So I added code in jira_soap_service_driver.rb so that jira4r would recognize the new API method and now my code works.  Here are the lines I inserted into jira_soap_service_driver.rb:

    [ XSD::QName.new(NsSoapRpcJiraAtlassianCom, "addBase64EncodedAttachmentsToIssue"),
              "",
              "addBase64EncodedAttachmentsToIssue",
              [ ["in", "in0", ["::SOAP::SOAPString"]],
                ["in", "in1", ["::SOAP::SOAPString"]],
                ["in", "in2", ["Jira4R::V2::ArrayOf_xsd_string", "http://jira.atlassian.com/rpc/soap/jirasoapservice-v2", "ArrayOf_xsd_string"]],
                ["in", "in3", ["Jira4R::V2::ArrayOf_xsd_string", "http://jira.atlassian.com/rpc/soap/jirasoapservice-v2", "ArrayOf_xsd_string"]],
                ["retval", "addAttachmentsToIssueReturn", ["::SOAP::SOAPBoolean"]] ],
              { :request_style =>  :rpc, :request_use =>  :encoded,
                :response_style => :rpc, :response_use => :encoded,
                :faults => {"Jira4R::V2::RemoteAuthenticationException_"=>{:use=>"encoded", :name=>"RemoteAuthenticationException", :ns=>"http://jira.atlassian.com/rpc/soap/jirasoapservice-v2", :namespace=>"http://jira.atlassian.com/rpc/soap/jirasoapservice-v2", :encodingstyle=>"http://schemas.xmlsoap.org/soap/encoding/"}, "Jira4R::V2::RemotePermissionException_"=>{:use=>"encoded", :name=>"RemotePermissionException", :ns=>"http://jira.atlassian.com/rpc/soap/jirasoapservice-v2", :namespace=>"http://jira.atlassian.com/rpc/soap/jirasoapservice-v2", :encodingstyle=>"http://schemas.xmlsoap.org/soap/encoding/"}, "Jira4R::V2::RemoteValidationException_"=>{:use=>"encoded", :name=>"RemoteValidationException", :ns=>"http://jira.atlassian.com/rpc/soap/jirasoapservice-v2", :namespace=>"http://jira.atlassian.com/rpc/soap/jirasoapservice-v2", :encodingstyle=>"http://schemas.xmlsoap.org/soap/encoding/"}, "Jira4R::V2::RemoteException_"=>{:use=>"encoded", :name=>"RemoteException", :ns=>"http://jira.atlassian.com/rpc/soap/jirasoapservice-v2", :namespace=>"http://jira.atlassian.com/rpc/soap/jirasoapservice-v2", :encodingstyle=>"http://schemas.xmlsoap.org/soap/encoding/"}} }
            ],

      I inserted these new lines immediately after the similar lines for "addAttachmentsToIssue" and before the lines for "getAttachmentsFromIssue".

    Here is my example Ruby code that tests this API method: