Over the past couple months, I've had to take over project management for my DarkPAN project at $EMPLOYER, and the software they're enamored of for that purpose is JIRA.

Unfortunately, JIRA can be a pain in the ass sometimes, and since we're not the only group at $EMPLOYER that uses JIRA, getting things set up the way we need them is not always possible. However, it was possible to manually go through and fix up issues to our standards...

Well, whenever something is manually possible, I look for a way to automate it. I quickly discovered that JIRA has a REST API, so I went looking for a tool to help me use it in Perl.

I found JIRA::REST.

Now, JIRA::REST was good... as far as it went. It handles connecting to the JIRA server for you, and lets you perform searches by basically passing it JQL queries as a string, but what it gives you back as results are a bunch of hash references, which you have to traverse yourself. Now, with the REST API docs this isn't too hard, but then if you want to modify an issue, you also have to look up the proper REST API method to POST/PUT to, and it all got very tiresome.

So I decided that I wanted to wrap it all in an object. I could get back objects for each of the issues that a query returned, and I could call mutator methods on the issue objects to modify the issue.

So I set out to write JIRA::REST::Class.

It's still a work in progress, but I'd love to get feedback from folks about how to improve it, or what features of the REST API they'd like to have added next.

GitHub: https://github.com/packy/JIRA-REST-Class

CPAN: https://metacpan.org/pod/JIRA::REST::Class