Giter VIP home page Giter VIP logo

decadog's Introduction

decadog

CircleCI branch

Github toolkit. Octocat++.

Installation

Install using cargo:

cargo install --git https://github.com/tommilligan/decadog

Configuration

decadog can be configured in several ways:

decadog.yml

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)

Environment variables

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

OS Keyring (secrets only)

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

Use

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.

Start Sprint

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

Todo

  • 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

decadog's People

Contributors

annesylvie avatar dependabot-preview[bot] avatar tommilligan avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

icodein

decadog's Issues

Use mockito for testing

Add mockito to dev-dependencies, and use it to test github and zenhub client implementation, as well as more complex sprint testing.

Update milestone title with current state

As part of closing a sprint, we'd like to update the milestone's title to reflect the final state of the sprint.

# before
Sprint 81

# after
Sprint 81 [52/69 (+18)]

The format is Sprint <milestone number> [<points done in sprint>/<points planned> +<points done out of sprint>]

This should be part of the library, as we may want to update the milestone name at any time, not just when closing a sprint.

The data you'll need is:

  • how many points were initially planned in the sprint
    • we don't store this anywhere, prompt the user for it using something like dialoguer::Input
  • how many points are in the milestone, and how many of those issues are closed

Remove open issues from previous sprint when closing the milestone.

Currently the script doesn't remove open issues (unfinished in the previous sprint) from the closed milestone. I suppose it's a matter of process, but I reckon it should remove the milestone from those issues since there's no guarantee they will end up in a future milestone.

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.