Github forking workflow made easy
Do you fork too often? So do we.
It's quite familiar to have your project completely hosted on Github: repositories, issues, milestones, wiki, etc. The problem with this is that your team members need to be very familiar with Git and very disciplined.
That's why we created Gub.
Gub is a Ruby executable gem that we created to get all tedius stuff done.
Here's how Gub maps to your Github workflow:
You can then list all your repositories:
$ gub repos
Clone an existing repository
Suppose you have forked someone/example at myuser/example. You may do:
$ gub clone myuser/example
This will clone and set a remote named "upstream" to follow someone/example.
List repository issues
You then can do:
$ gub issues
And it would list all issues on myuser/example if it has issues enabled. If not, it will list issues from someone/example.
You can filter issues assigned to you by adding --mine to the command.
Working on an issue
You may then do:
$ gub start 123
And it would synchronize your master with someone/example, then creates a new branch issue-123 and finally will checkout the issue-123 branch.
The good thing here is that your team won't have to remember the branch naming convention, it's already forced by Gub.
When you're done working on an issue and still have the issue-123 checked out, execute:
$ gub finish
Which will convert issue #123 to a Github pull-request.
Keep your fork up-to-date
$ gub sync
And you're done.
Gub is quite simple and easy to use. It requires little knowledge of how Github works and you won't have to keep a browser window open.