Gush is a rapid git workflow for project maintainers and contributors that works with backend support for GitHub, Enterprise Github, and more!
Check Gush in action here and here!
Logo courtesy from @maxakawizard and @kotosharic
Logo explanation is best depicted from this passage from Psalms 78:
True, he struck the rock, and water gushed out, streams flowed abundantly, but can he also give us bread? Can he supply meat for his people?” When the Lord heard them, he was furious; his fire broke out against Jacob, and his wrath rose against Israel, for they did not believe in God or trust in his deliverance.
There first thread of blood and the following are water gushing out of a rock, connecting the Old Testament prophecy fulfillment in the New Testament at the cross when Jesus was opened on his side and gushed out water and blood.
Gush is an app console whose intention is to automate common maintainer and contributor tasks.
- creates a Pull Request with a formatted table description of the changes
- creates github release notes
- changes the base branch of a Pull Request
- automates retrieval of issue's message, title and comments as a text
- merges a PR with just the number and includes all github discussion on the commit message
- and much more in the form of intuitive commands!
Install Gush in two ways:
$ composer global require gushphp/gush=dev-master
If it is the first time you globally install a dependency then make sure
you include ~/.composer/vendor/bin
in $PATH as shown here.
$ composer global update gushphp/gush
$ curl -sS http://gushphp.org/installer | php
$ mv gush.phar /usr/local/bin/gush // optionally
or
$ curl -sS http://gushphp.org/installer | php -- --install-dir=bin
You may want to start by configuring it:
$ gush core:configure
Insert your github credentials:
username: cordoval
// ...
Configuration saved successfully.
Let's go into a repo, list issues, take one, send a pull request and merge it:
List it:
$ cd project_directory
$ gush issue:list
# State PR? Title User Assignee Milestone Labels Created
14 open Tests and Documentation for Commands cordoval 2014-01-10
Take it:
$ gush issue:take 14
$ git branch
* 14-tests-and-documentation-for-commands
Do your changes and commit them:
$ git commit -am "added instructions to use gush"
Send PR:
$ gush pull-request:create
Bug fix? [y]
// ...
PR Title: Added a bit of documentation under usage
https://github.com/gushphp/gush/pull/94
Merge it:
$ gush pull-request:merge 94
Pull Request successfully merged
Please send your PR using Gush and it will have 100% chances to be merged. See the issues list.
Running the test suite (npm required):
$ npm install
$ ./dev
Join the Mailing List and also on IRC channel #gushphp for discussions and questions.