Gush is a rapid git workflow for project maintainers and contributors that works with backend support for GitHub, Enterprise Github, and more!
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.
What is this?
Gush is a php console utility 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:
1) Installing system-wide using composer (recommended)
$ composer global require gushphp/gush=dev-master
If it is the first time you globally install a dependency then make sure
~/.composer/vendor/bin in $PATH as shown here.
Always keep your Gush installation up to date:
$ composer global update gushphp/gush
2) Installing as a phar file:
$ curl -sS http://gushphp.org/installer | php $ mv gush.phar /usr/local/bin/gush // optionally
$ 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:
$ 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
$ 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"
$ gush pull-request:create Bug fix? [y] // ... PR Title: Added a bit of documentation under usage https://github.com/gushphp/gush/pull/94
$ gush pull-request:merge 94 Pull Request successfully merged
Running the test suite:
Mailing list and IRC channel
Join the Mailing List and also on IRC channel #gushphp for discussions and questions.