Metadata-Version: 2.1
Name: fcli
Version: 2.0.1
Summary: Helps spread the AwesomeSauce of the Foundational Components team a bit further
Home-page: https://github.com/halprin/fcli
Author: halprin
Author-email: me@halprin.io
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
Requires-Dist: click
Requires-Dist: requests
Requires-Dist: click-datetime

# FCLI Foundational Components CLI
Helps spread the AwesomeSauce of the Foundational Components team a bit further.

## Prerequisites
[Python 3](https://www.python.org/downloads/) is required.  Python 2 is not supported.

Second, Python 3's `bin` directory needs to be in your `PATH` environment variable.  For example, if you are using the
python.org install on macOS, you will need to add the following to your `~/.profile`.
```bash
PATH="/Library/Frameworks/Python.framework/Versions/3.*/bin:${PATH}"
```

## Installation
`fcli` is located on [PyPI](https://pypi.org/project/fcli/).

To install, run the following.
```bash
$ pip3 install fcli
```

`sudo` may be needed if your Python 3 installation is in a protected directory.  This will put the command the `bin`
directory of your Python 3 installation.

To update `fcli` to the latest version, run the following.
```bash
$ pip3 install --upgrade fcli
```

Again, `sudo` may be required.

## Specifying Credentials
`fcli` uses your EUA credentials to authenticate yourself to JIRA, etc.  There are multiple ways to specify your
credentials.

### File
Create an ini file at `~/.fcli`.  In there, add the `[default]` section, and under that section specify a `username` and
`password`.  An example can be seen in [fcli.ini](./fcli.ini).

### Environment Variables
The environment variables `FCLI_USER` and `FCLI_PASS` can be utilized to specify the username and password.

### CLI
Only the `username` can be specified via the CLI.  Tack on the `--username <username>` option.

### Keyboard
If the username or password is not specified in some other fashion, the CLI will prompt the user.

## Usage

### Task Administration

#### Task Creation

There are two types of task the `fcli` can add: triage tasks and backlog tasks.

To add a triage task,
```bash
$ fcli triage create "<task title>" "<task description>"  [--importance <High/Medium/Low>] [--effort <High/Medium/Low>] [--due <date in the future>] [--in-progress] [--no-assign]
```

A new task is created in the triage board with the specified title and description.  Optionally, put the task into the
In Progress state with the `--in-progress` option, and optionally do not automatically assign the task to yourself with
`--no-assign`.  The importance, effort, and due date are required, and they will be prompted for if they are not
supplied on the command line.

To add a backlog task,
```bash
$ fcli backlog create "<task title>" "<task description>" <parent story>
```

A new task is created in the standard backlog with the specified title and description.  The task is linked with
the parent story.  If the parent story is already in an active sprint, the task is also moved into the same sprint.

#### Triage Task Administration

There are currently two different tasks for triage administration: search for all open triage tasks and update the score for all open triage tasks.

To search for all open triage tasks,
```bash
$ fcli triage search
```

A json representation of all of the open triage tasks will be printed to the terminal.

To run the triage scoring process,
```bash
$ fcli triage score
```

The scores of all open triage tasks will be updated. The terminal will show progress.

## Development
I accept PRs!  Check out the [issues](https://github.com/halprin/fcli/issues) and assign yourself when you start
working on one.


