That rug really tied the room together, did it not?
CLI application for getting information out of Jira.
CLI application for retrieving data from Jira Usage: walter [command] Available Commands: board Board related commands help Help about any command search Search for issues sprint Sprint related commands Flags: --config string config file (default is $HOME/.config/benmatselby/walter.yaml) -h, --help help for walter Use "walter [command] --help" for more information about a command. If you are wanting to build and develop this, you will need the following items installed. If, however, you just want to run the application I recommend using the docker container (See below).
- Go version 1.23+
You will need the following environment variables defining:
export JIRA_TOKEN="" export JIRA_URL="" export JIRA_USERNAME=""Creating a Jira API Token is documented here.
There is also a configuration file (by default, ~/.config/benmatselby/walter.yaml) that allows you to configure various things:
- The story point field in your Jira instance, per board.
- The layout of the board (Couldn't find an API to get this at the moment).
- Template definitions for the
searchcommand.
An example:
boards: My special board: story_point_field: customfield_888 story_point_fields: - customfield_888 - customfield_889 layout: - To Do - In Progress - Stuck - Review - Done fields: story_point_field: customfield_10911 templates: all-open: query: "project = 'My Project' AND status != Completed ORDER BY Summary" count: 200| Item | Description |
|---|---|
boards | Top level node for board configuration. |
My special board | The name of the board (walter board list). |
story_point_field | Defines the custom field that is houses the story point estimation (If you do not define this, the sprint.burndown command does not fully render all the information). If you know there is only one field in your system for story points, define this field. |
story_point_fields | Defines the custom fields that should be used in conjunction with one another for the story point estimation. It turns out that some projects have multiple fields defined over time! I highly recommend against this. It will try to use story_point_field first, and then iterate every field defined in this config until it gets a story point value. |
layout | The names of the columns on the board (I am struggling to find an API endpoint that documents this). |
templates | Top level node for template configuration. |
fields.story_point_field | Top the overarching story point field to be used. Long term, the commands will look at this value first, before looking at board specific values. |
You can install this application a few ways:
Installation via Docker
Other than requiring docker to be installed, there are no other requirements to run the application this way.
$ docker build -t benmatselby/walter . $ docker run \ --rm \ -t \ -eJIRA_TOKEN \ -eJIRA_URL \ -eJIRA_USERNAME \ -v "${HOME}/.config/benmatselby":/root/.config/benmatselby \ benmatselby/walter:latest "$@"The latest tag mentioned above can be changed to a released version. For all releases, see here. An example would then be:
benmatselby/walter:version-2.2.0This would use the verson-2.2.0 release in the docker command.
Note - if you get the following error when running this on Windows using docker desktop for Windows:
Failed to load config: Config File "walter" Not Found in "[/root/.config/benmatselby]"
Then you may need to reset your credentials in docker > Settings > Shared Drives > Reset credentials, because it uses shared drives for mounting volumes and caches Active Directory credentials.
Installation via Git
git clone git@github.com:benmatselby/walter.git cd walter make all ./walterYou can also install into your $GOPATH/bin by running make build && go install.
Installation via Binaries
You can download the binaries from the release pages. Find the release you want, and check the "Assets" section.
Once downloaded, be sure to put the binary in a folder that is referenced in your `$PATH``.
To generate the code used to mock away the Jira interaction, run the following command.
make mocksThis will generate you some source code you can copy into jira/mock_jira.go. You will need to change the package to jira.