Geet
Command line interface for performing Git hosting service operations.
This tool is very similar to Hub, but it supports a different set of operations, fully specified via command line.
Please see the development status section for informations about the current development.
Development status
Geet is (again) under active development. The current focus is implementing Gitlab functionalities.
Operation/providers support
The functionalities currently supported are:
- Github:
- create gist
- create issue
- create label
- create PR
- list issues
- list labels
- list milestones
- list PRs
- merge PR
- Gitlab:
- list issues
- list labels
- list milestones
Samples
Prerequisite(s)
Geet requires the API token environment variable to be set, eg:
export GITHUB_API_TOKEN=0123456789abcdef0123456789abcdef # for GitHub
export GITLAB_API_TOKEN=0123456789abcd-ef0-1 # for GitLab
All the commands need to be run from the git repository.
Create an issue (with label and assignees)
Basic creation of an issue:
$ geet issue create
The default editor will be used for title/description:

Labels, milestone and assignees will be asked with menu selection:
Please select the label(s): (Use arrow keys, press Space to select and Enter to finish, and alphanumeric/underscore characters to filter)
Labels, milestone and assignees can be directly specified with the respective parameters:
$ geet issue create --labels bug,wip --assignees johncarmark --milestone 1.0
After creation, the issue page will be automatically opened in the default browser.
Create a PR (with label, reviewers, and assigned to self)
Basic creation of a PR:
$ geet pr create
The default editor will be used for title/description:

More advanced PR creation, with label and reviewers, assigned to self:
$ geet pr create --labels "code review" --reviewers kevin,tom,adrian
After creation, the issue page will be automatically opened in the default browser.
List issues/PRs
List the open issues, in default order (inverse creation date):
$ geet issue list
> 16. Implement issue opening (https://github.com/saveriomiroddi/geet/issues/16)
> 14. Update README (https://github.com/saveriomiroddi/geet/issues/14)
> 8. Implement milestones listing/show (https://github.com/saveriomiroddi/geet/issues/8)
> 4. Allow writing description in an editor (https://github.com/saveriomiroddi/geet/issues/4)
> 2. Support opening PR into other repositories (https://github.com/saveriomiroddi/geet/issues/2)
List the open PRs, in default order (inverse creation date):
$ geet pr list
> 21. Add PRs listing support (https://github.com/saveriomiroddi/geet/pull/21)
List milestones
$ geet milestone list
> 9. 0.2.0
> 4. Allow writing description in an editor (https://github.com/saveriomiroddi/geet/issues/4)
> 6. 0.2.1
> 69. Display warning when some operations are performed on a forked repository (https://github.com/saveriomiroddi/geet/issues/69)
> 60. Update Create PR test suite; the UTs are not inspecting some of the changes (https://github.com/saveriomiroddi/geet/issues/60)
> 51. Services should take repository in the initializer (https://github.com/saveriomiroddi/geet/issues/51)
> 7. 0.2.2
> 43. PR Merging: upstream support (https://github.com/saveriomiroddi/geet/issues/43)
> 35. Improve design of repository-independent actions (https://github.com/saveriomiroddi/geet/issues/35)
List labels
$ geet label list
> - bug (#ee0701)
> - enhancement (#84b6eb)
> - technical_debt (#ee0701)
> - top_priority (#d93f0b)
Create a gist
Create a private gist:
$ geet gist create /path/to/myfile
Create a public gist, with description:
$ geet gist create --public /path/to/myfile 'Gist description'
Using menus for options selection
Menus can be used for selecting attributes (labels, collaborators, milestones...).
This is an example of multiple choice selection:
Please select the label(s): (Use arrow keys, press Space to select and Enter to finish, and alphanumeric/underscore characters to filter)
Typing alphanumeric keys and underscore will enable filtering:
Please select the label(s): (Filter: "b")
When a filter is active, use Backspace to cancel the last character, and Canc to reset it.
Help
Display the help:
$ geet [command [subcommand]] --help
Examples:
$ geet --help
$ geet pr --help
$ geet pr create --help