/gush

Gush - Rapid workflow for project maintainers and contributors

Primary LanguagePHPMIT LicenseMIT

Gush

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 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

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.

Keep your Gush install always updated:

$ 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

or

$ curl -sS http://gushphp.org/installer | php -- --install-dir=bin

Usage

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

Contributions

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

Mailing list and IRC channel

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