Gush - Rapid workflow for project maintainers and contributors
Pull request Compare This branch is 681 commits behind gushphp:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


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!

Build Status Scrutinizer Quality Score Code Coverage SensioLabsInsight Latest Stable Version Total Downloads Latest Unstable Version License Stories in Ready Dependency Status

Gush logo

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.

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 you include ~/.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 | php
$ mv gush.phar /usr/local/bin/gush // optionally


$ curl -sS | 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

Merge it:

$ gush pull-request:merge 94
Pull Request successfully merged


Please read our contributor guide. See also the issues list.

Running the test suite:

$ ./dev

Mailing list and IRC channel

Join the Mailing List and also on IRC channel #gushphp for discussions and questions.