/SpiraJira

A crude command-line client for Jira. If you have to use it, at least you won't have to touch it.

Primary LanguageHaskellGNU Lesser General Public License v3.0LGPL-3.0

SpiraJira: Cut Through the Scum

Spirogyra is very common in relatively clean eutrophic water, developing slimy filamentous green masses. In spring Spirogyra grows under water, but when there is enough sunlight and warmth they produce large amounts of oxygen, adhering as bubbles between the tangled filaments. The filamentous masses come to the surface and become visible as slimy green mats. (Wikipedia)

A crude command-line client for Jira. If you have to use it, at least you won’t have to touch it.

Commands

Show an Issue

Prints the Summary, Description, and Comments for the specified Ticket:

$ spirajira TB-001
TB-001 :: On the Many Problems Inherent in Mis-using Jira for Planning
[In Development]

This hurts.  Why do we keep doing this to ourselves?

COMMENTS:

Joe Dev (2015-02-27 00:02:23 UTC)
But I like doing it this way.  I never have to talk to anybody and
it's nearly impossible for anyone to find out how terrible I am at
my job.

Comment on an Issue

Add a comment to the specified ticket.

$ spirajira comment TB-002 "I sure wish we weren't trying to plan software with a ticketing tool"

Show Available Transitions

$ spirajira actions TB-001
31 : Pause Development
211 : Developed - Waiting for Product Review
311 : In Development - Waiting for Product Info
371 : Close

Trigger a Transition

$ spirajira act TB-001 371

Installation

Hold on. Let’s make sure it works first.

If you really want to try it, there’s a build of it for OS/X. Otherwise, check it out and build it with cabal:

cabal install --only-dependencies
cabal build

Configuration

SpiraJira reads login credentials and Server URI from a configuration file.

By default, it will read files in this order:

  1. $(HOME)/.spirajira
  2. ./spirajira.cfg
  3. a file specified with the --config option

The configuration file should look something like this:

user = "ticketdrone557"
pass = "comply!"
uri  = "https://jira.host/rest/api/2/"