Gush is a rapid workflow for project maintainers and contributors
Gush is an app console whose intention is to automate common maintainer and contributor tasks.
- create a Pull Request with a formatted table description of the changes
- create github release notes
- change the base branch of a Pull Request
- automate retrieval of issue's message, title and comments as a text
- merge a PR with just the number and include all github discussion on the commit message
- tagging signing off, change branch name and some queue of common tasks
There are different ways to use Gush:
If it is the first time you globally install a dependency then make sure you follow the instructions here.
$ composer global require 'cordoval/gush=dev-master'
First, clone Gush repository into your local machine and install the dependencies:
$ git clone [email protected]:cordoval/gush.git
$ cd gush
$ composer install
We can use Box to build the phar file. Once installed, you can build it easily:
$ box build -v
$ composer global update cordoval/gush
Note: if you installed it any other way you would need to install it again.
You may want to start by configuring it:
$ gsh configure
Insert your github credentials:
username: cordoval
password:
Cache folder [/Users/cordoval/.gush/cache]:
Configuration saved successfully.
Let's go into a repo, list, take ticket, send PR and merge it:
List it:
$ cd project_directory
$ gsh issue:list
# State PR? Title User Assignee Milestone Labels Created
14 open Tests and Documentation for Commands cordoval 2014-01-10
Take it:
$ gsh p:take 14
OUT > Fetching cordoval
OUT > Fetching origin
ERR > Note: checking out 'origin/master'.
You are in 'detached HEAD' state ...
ERR > HEAD is now at 681e0d6... Merge pull request #93 from cordoval/configure-command-test
ERR > Switched to a new branch '14-tests-and-documentation-for-commands'
~ git branch
* 14-tests-and-documentation-for-commands
Do your changes and commit them:
$ git commit -am "added instructions to use gush"
Send PR:
$ gsh p:create
Bug fix? [y]
New feature? [n]
BC breaks? [n]
Deprecations? [n]
Tests pass? [y]
Fixed tickets [#000] #14
License [MIT]
Doc PR
PR Title: Added a bit of documentation under usage
ERR > fatal: remote cordoval already exists.
OUT > Fetching cordoval
OUT > Fetching origin
ERR > To [email protected]:cordoval/gush.git
* [new branch] 14-tests-and-documentation-for-commands -> 14-tests-and-documentation-for-commands
OUT > Branch 14-tests-and-documentation-for-commands set up to track remote branch 14-tests-and-documentation-for-commands from cordoval.
https://github.com/cordoval/gush/pull/94
Merge it:
$ gsh p:merge 94
Pull Request successfully merged