My little Jira CLI
2 min read
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 au automatize my workflow.
It's why I built my CLI.
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 don't lose my time with the clickodrome to:
- create/delete a project
- create a new version inside a project
- add a version to a ticket
- enable/disable 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 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_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.