My little Jira CLI

Jira is one of the most used tools around the world, but it has drawbacks:

  • its clickodrome
  • some crazy deprecated things on its REST API

From clickodrome to CLI

For one personal project and my job, I need to create versions in Jira. Theoretically, you have a release manager/engineer doing it, but it’s part of my job.

Sometimes to load a big ticket, I need to wait 1 minute before finally interacting correctly with the “Fix versions” fieldโ€ฆ WTF!
I hate the clickodrome for this poor UX.

The other thing was to automatize my workflow.

It’s why I built my CLI.

CLI

Rust

I’m a Haskell, Python, and Rust lover. But I wanted something without a garbage collector. The choice was between Haskell and Rust.

I don’t need pure functional programming, so Rust is a natural choice.

CLI at this time

My CLI permits me to not waste my time with the clickodrome to:

  • create/delete a project
  • create a new version of a project
  • add a version to a ticket
  • enable/disable the project’s features

Also, I’ve two utility functions due to stupid things from Jira REST API:

  • get account id
  • get project id

Theoretically, we use the project key (ex. ABC-), but some endpoints deprecate it in favor of the project id that we never remember.

The account id is needed to create a project: set the lead.

I haven’t used those functions (get_account_id and get_project_id) directly inside the code because get_project_id can be very big, more than 1 or 2 MB to load, so you take it one time and keep it inside a note.

CLI in the future

I don’t know exactly, continuing to add some features that I need, but also open to contributors.

Soon, I’ll add the possibility to list the project’s features with their state (issue #1).

For example, on another personal project, I don’t use Jira due to:

  • losing time with the clickodrome
  • the decision to stop Jira Server (on-premise)

I hope this CLI can help you.