Github toolkit. Octocat++.
Install using cargo
:
cargo install --git https://github.com/tommilligan/decadog
decadog
can be configured in several ways:
A decadog.yml
file in the current working directory. The specification is:
version: 1
owner: Github username/organisation name
repo: Github repository
github_token: Github PAT token
zenhub_token: Zenhub API token (optional)
Any setting from the config file above can be set by a variable in all caps,
prefixed with DECADOG_
, such as:
export DECADOG_GITHUB_TOKEN=abcdef...
You will need to compile with config_keyring
for this to work. You may need to
install libdbus-1-dev
.
cargo build --release --bins --features config_keyring
On Linux, you can set the appropriate secrets by running:
First, install secret-tool
:
apt-get install libsecret-tools
secret-tool store --label='decadog_github_token' application rust-keyring service decadog_github_token username decadog
# interactive password prompt...
secret-tool store --label='decadog_zenhub_token' application rust-keyring service decadog_zenhub_token username decadog
# interactive password prompt...
You will need a Github API token. You can generate this from the Settings > Tokens page in the Github UI.
You should grant the scope repo
.
Set this token in your environment as DECADOG_GITHUB_TOKEN
.
See the example configuration file. This file should be in your current working directory.
The currently functionality aims to make starting a sprint easy. It assumes:
- you have already created an appropriate milestone for the sprint
- you have already created issues/users in your repo
It will:
- ask which milestone you want to populate
- prompt for ticket numbers, and for each:
- display a description
- confirm assigning it to the milestone
- prompt to assign a user to the ticket
- Make assigning multiple tickets to the same milestone painless
- Assign to milestone
- Assign to users
- Fuzzy aided selection of users from cli
- CLI interface
- make this one subcommand
- parameterise owner/repo fields
- config file for frequent use, from pwd
- Error handling
- Verify response of assignment
- Make errors shown to users nicer
- Make config errors clearer
- Manage exit codes