A git workflow plugin inspired by git-pivotal but intending to support multiple project management platforms aside from just Pivotal Tracker.
Bushy is a Python package and can be installed using the easy_install
or pip
commands. For the most seamless integration install the package so the generated console scripts are available in your $PATH.
It is always advisable to install python packages within a virtualenv. If you activate
your project virtualenv while developing, this will place the commands in your $PATH automatically. Alternatively, you can create a dedicated virtualenv for Bushy and add the scripts to your shell config. If you use bash
you could do the following to ensure the commands are accessible:
$ virtualenv-2.6 --no-site-packages bushy
$ bushy/bin/pip install bushy
$ echo "export PATH = $PATH:/path/to/bushy/bin" > ~/.bash_profile
This will allow you to run the following commands:
$ git feature
$ git finish
$ git bug
As well as:
$ /path/to/bushy/bin/git-feature
$ /path/to/bushy/bin/git-finish
$ /path/to/bushy/bin/git-bug
Bushy requires global and project local configuration to integrate fully.
Required local configuration (from within your project directory):
$ git config -f .git/config bushy.platform pivotal # use Pivotal Tracker for this project
$ git config -f .git/config bushy-pivotal.project-id PROJECT_ID # from the project url on the Pivotal Tracker site
Required global configuration:
$ git config --global bushy-pivotal.api-token TOKEN # taken from the profile section on the Pivotal Tracker site
$ git config --global bushy-pivotal.full-name "YOUR NAME"
Optional configuration:
$ git config --global bushy-pivotal.integration-branch # the name of the integration branch if different from master
$ git config --global bushy-pivotal.only-mine # only select from new features that are assigned to you
You can select a new feature to work on using the git-feature
command:
junkafarian$ git feature
Retrieving latest features from Pivotal Tracker
Story: hook up with pivotal
URL: http://www.pivotaltracker.com/story/show/8236507
Updating feature status in Pivotal Tracker...
Enter branch name (will be prepended by 8236507) [feature]:
Switching to branch 8236507-feature
junkafarian$
If you want to work on a specific story you can specify the story id:
junkafarian$ git feature -s 12345
Retrieving story 12345 from Pivotal Tracker
Story: hook up with pivotal
URL: http://www.pivotaltracker.com/story/show/12345
Updating feature status in Pivotal Tracker...
Enter branch name (will be prepended by 12345) [feature]:
Switching to branch 12345-feature
junkafarian$
This will switch you to a new branch for working on the issue selected.
Once you have completed the development work / checked tests pass / committed the changes, you can declare the task as finished:
junkafarian$ git finish
Marking Story 8236507 as finished...
Merging 8236507-feature into master
Removing 8236507-feature branch
Merged code into trunk. Please push upstream and notify the release manager if necessary
junkafarian$
You can then push these changes upstream.
- Unit Tests - completed
- Allow features / bugs to be selected by ID on the commandline - completed
- Support for github issues
Bushy
encourages a workflow based entirely around code branches. Bushes have lots of branches...