Giter Club home page Giter Club logo

walter's Introduction

Walter

GitHub Badge Go Report Card

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.

Requirements

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.21+

Configuration

Environment variables

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.

Application configuration file

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.

Installation

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 [email protected]: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``.

Testing

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.

walter's People

Contributors

a-cowling avatar benmatselby avatar dependabot[bot] avatar markgaze avatar vickyaskham avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

walter's Issues

Would be good to have a "template" sub command

Right now if you want the sprint burndown for example, you need to remember the board and the sprint number..

Ideally this is config drive, as it only changes when you start a new sprint..

So something like walter sprint burndown --template and it would then look in .walter/config.yml to see if there is a template: sprint: burndown config and then populate the internals so we don't have to remember the board and sprint.

Find and utilise a board layout API

I don't want to have to use a configuration file to determine the layout of the board. A quick look proved unfruitful when I tried to see if there was an API for this.

If and when it's found, then cli.getBoardLayout() would need to be updated

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.