When calling pit from other programs or as part of a pipe, the display
style typically used to format listed issues contains a lot of unwanted
output (ANSI escape code, headings, etc.). Now when STDIN is not a TTY,
a plain and consistently formatted version of the issues is listed
without any additional formatting, one issue per line of output.
* Add `state` on `Issue` to be able to query the state of an issue even
if you only have a reference to this issue and don't have a reference
to the context or issues table. This does not change the persisted
format of the issue. On disk the state of an issue is still
represented by it's location in the file hierarchy.
* Refactored libpit to use zero_functional instead of sequtils.
- We now always protect the left margin when printing task details
(including tags) to make it easier to skim down that line.
- Also made the actual summary always follow immediately after the ID,
to align to that skimmable line.
- Moved the information about the delegatee to the end of the summary,
next to the tags, and changed the color of the delegatee to make it
easier to distinguish.
- Added the `-G` option, to allow filtering out issues matching any of
the provided tags.
- We now allow options to be passed to both the `delegate` and `help`
command. Any options are ignored, but this allows the use of tools
like `cmd_shell` which always wrap commands with the pre-given
options.
For example, allow commands like:
# exclude issues from context "abc"
pit list -C abc
# exclude issues delegated to John Doe
pit list -P "delgated-to:John Doe"
* Refactor formatting logic to better calculate needed padding between
issues and sections.
* Add `list contexts` command to list all known contexts according to
the contexts configuration and the contexts defined in issues.
* Be more intentional about when the default context is used. Don't
override existing context values in issues when changing their state.
* `edit` now allows multiple issues to be edited.
* Change single-issue display to be more verbose, listing all the
properties and tags on an issue.
The REST API is simply a wrapper around the command line (and actually
invokes the command line). It relies on the command line tool validating
its input.
Currently only the `/list` endpoint is implemented, exposing the `list`
command.