### TODOs
- [ ] Error message format
- [ ] Colored message
- [ ] Internal state
- [ ] Transitions id
- config
- [x] templatize message ( default : "prefix(scope) message \[issue\]")
- [ ] handle existing on uninitiated jet project `config.shared.toml`
- [x] init command
- [x] template commit command
- [x] generate commit prefix from config
- [x] git2 implementation
- [x] current jira issue
- [x] optional scope
- [x] default behavior for unmapped branch
- [ ] fix empty repository scenario
- [ ] optionally commit with $EDITOR
- [ ] install commit hooks
- [ ] validate commit message against template
- [ ] info command
- [ ] dump config (ie. without credentials)
- [ ] opt global
- [ ] opt local
- [ ] status command
- [x] current branch name
- [ ] show current issue
- [ ] issue state
- [ ] issue description --details
- [ ] show related commits
- [ ] show git diff
- [ ] issues command
- [x] open my issues
- [ ] opt open
- [ ] opt search
- [ ] opt user
- [x] checkout command
- [x] fetch issue
- [x] if not assign issue to the current user
- [x] create and checkout branch from template
- [x] checkout branch from template
- [x] create and checkout branch from template
- [x] warn on simple checkout if issue is not assigned to current user
- [x] change issue state to ${WIP}
- [x] save transition id to internal settings
- [x] checkout without prefix for issue with exactly one matching branch
- [ ] submit command
- [ ] create a new PR on the remote git platform
- [ ] assign reviewers
- [ ] assign jira issues default reporter
- [ ] support bitbucket
- [ ] support github
- [ ] support gitlab
- [ ] opt wip
- [ ] unwip by default
- [ ] open command
- [ ] open jira issue in the browser
- [ ] opt `--git` to open pull request page
- [ ] changelogs command (see [git journal](https://github.com/saschagrunert/git-journal))
- [ ] default from previous tag
- [ ] opt --from
- [ ] opt --to