{"id":248,"date":"2022-03-16T20:00:00","date_gmt":"2022-03-17T01:00:00","guid":{"rendered":"http:\/\/sycured.127.0.0.1.sslip.io\/?p=248"},"modified":"2024-01-14T11:51:54","modified_gmt":"2024-01-14T16:51:54","slug":"jira-cli","status":"publish","type":"post","link":"http:\/\/10.42.0.68:8080\/blog\/jira-cli","title":{"rendered":"My little Jira CLI"},"content":{"rendered":"\n
Jira is one of the most used tools around the world, but it has drawbacks:<\/p>\n\n\n\n
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.<\/p>\n\n\n\n
Sometimes to load a big ticket, I need to wait 1 minute before finally interacting correctly with the “Fix versions” field\u2026 WTF!
I hate the clickodrome for this poor UX.<\/p>\n\n\n\n
The other thing was to automatize my workflow.<\/p>\n\n\n\n
It’s why I built my CLI<\/a>.<\/p>\n\n\n\n I’m a Haskell, Python, and Rust lover. But I wanted something without a garbage collector. The choice was between Haskell<\/a> and Rust<\/a>.<\/p>\n\n\n\n I don’t need pure functional programming, so Rust is a natural choice.<\/p>\n\n\n\n My CLI permits me to not waste my time with the clickodrome to:<\/p>\n\n\n\n Also, I’ve two utility functions due to stupid things from Jira REST API:<\/p>\n\n\n\n Theoretically, we use the project key (ex. ABC-), but some endpoints deprecate it in favor of the project id that we never remember.<\/p>\n\n\n\n The account id is needed to create a project: set the lead.<\/p>\n\n\n\n I haven’t used those functions ( I don’t know exactly, continuing to add some features that I need, but also open to contributors.<\/p>\n\n\n\nCLI<\/h2>\n\n\n\n
Rust<\/h3>\n\n\n\n
CLI at this time<\/h3>\n\n\n\n
\n
\n
get_account_id<\/code> and
get_project_id<\/code>) directly inside the code because
get_project_id<\/code> can be very big, more than 1 or 2 MB to load, so you take it one time and keep it inside a note.<\/p>\n\n\n\n
CLI in the future<\/h3>\n\n\n\n