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
search
command.
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.0
This 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
./walter
You 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 mocks
This will generate you some source code you can copy into jira/mock_jira.go
. You will need to change the package to jira
.