jirust-cli

Crates.iojirust-cli
lib.rsjirust-cli
version0.10.0
sourcesrc
created_at2024-08-13 13:02:12.612987
updated_at2024-11-20 23:22:56.442176
descriptionA CLI tool to interact with Jira
homepage
repositoryhttps://github.com/ilpanich/jirust-cli
max_upload_size
id1336011
size249,547
Emanuele Panigati (ilpanich)

documentation

https://docs.rs/jirust-cli

README

icon

JiRust-CLI

Component Tests Build Crate docs rust-clippy
jirust-cli Tests build and release jirust-cli Crate API rust-clippy analyze
jira_v3_openapi Tests build and release jira_v3_openapi Crate API

JiRust-CLI will be a simple Jira CLI developed in rust languages. The main goals are

  • to provide a simple and easy way to interact with Jira using the terminal
  • to experience myself with rust language
  • to provide an implementation of the Jira API in rust I cannot find at the moment

Installation

To install it simply run:

cargo install jirust-cli

Usage

To use it simply run:

jirust-cli --help

And you will see the help message.

Configuration

To configure the CLI you need to create a configuration file in your home directory called .jirust-cli/jirust-cli.toml.

You cangenerate it (if the file doesn't exist the CLI will ask you to configure itself at the first run and the it will store the config in the file) by:

jirust-cli config setup

And you will be asked to insert the configuration parameters.

Features

The CLI is still under heavy development and the features are not complete. Currently the basic version management is implemented and you can:

  • list the versions of a project
  • create a new version
  • delete a version
  • update a version
  • release a version
  • archive a version
  • list all the projects
  • list all the issue types available in a given project
  • list all the fields available in a given project for a given issue type
  • Create a new issue
  • Show an issue details
  • Update an issue (Not yet working, to be fixed)
  • Delete an issue
  • Transition an issue
  • Assign an issue
  • List all the transitions available for an issue

Supported output formats are:

  • JSON (default)

  • Table

Development

The project is still under heavy development and I will prioritize the features I need the most for my daily programmer life. Use in production at your own risk. The content of the openapi Jira lib is automatically generated from the Jira API openapi file, retrieved form the official Jira API v3 docs:

openapi-generator-cli generate -g rust -o ~/git/priv/jirust-cli/jira_v3_openapi -i jira-v3-openapi-spec/swagger.v3.json --additional-properties=bestFitInt=true,preferUnsignedInt=true,supportMiddleware=true

Documentation

The documentation is generated using cargo doc --open and it will open the documentation in your browser. It is also available upon publish on jira_v3_openapi docs.rs for the Jira REST API v3 lib crate and on JiRust-CLI docs.rs for the lib crate used by the binary.. Since everything is still under heavy development the documentation is not complete and it will be updated as the project evolves. Please notice that jira_v3_openapi docs is autogenerated from the openapi file and it is not complete and not always correct, but I wouldn't spend time to improve it..

Also some of the jirust-cli documentation is auto-generated by AI, I will improve it every time I found something to be fixed inside it.

Release

Everything is currently released upon the crates.io platform, once new updates are available:

Roadmap

Next features to be integrated and supported are:

  • Update issue management operation has to be fixed since it is not working correctly at the moment, but I have to design the solution properly; the main issue is related to managing complex Jira fields.

Those are mandatory for my work and I will prioritize them; other features will be added as needed. You can request a feature by opening an issue or you can provide an implementation compliant with what is currently developed in a PR.

License

Apache 2.0

Contribution

Feel free to contribute to the project. I will be happy to accept any help and suggestion on how to make the code better or even to integrate new features developed by the community.

Support the project

Since I work as developer and manager during the day, I will develop this project during the night and weekends, once I have time. If you want to support the project bringing me a coffee to keep me awake and coding, you can do it by clicking the link below:

ko-fi

Thank you for your support!

Commit count: 201

cargo fmt