Build Status Code Coverage Code Climate

GitX

Git eXtensions for improved development workflows

These custom scripts are automatically registered into the git namespace so they are available without learning any new commands!

Installation

$ gem install gitx

git start

update local repository with latest upstream changes and create a new feature branch

options:

  • --issue or -i = reference to github issue id this branch is related to

git update

update the local feature branch with latest remote changes plus upstream released changes.

git integrate

integrate the current feature branch into an aggregate branch (ex: prototype, staging)

git review

create a pull request on github for peer review of the current branch. This command is re-runnable in order to re-assign pull requests.

options:

  • --assign or -a = assign pull request to github user
  • --open or -o = open pull request in default web browser.
  • --bump or -b = bump an existing pull request by posting a comment to re-review new changes
  • --approve = approve/signoff on pull request (with optional feedback)
  • --reject = reject pull request (with details)

NOTE: the --bump option will also update the pull request commit status to mark the branch as 'pending peer review'. This setting is cleared when a reviewer approves or rejects the pull request.

git release <feature_branch_name (optional, default: current_branch)

release the feature branch to the base branch (by default, main). This operation will perform the following:

  • pull latest code from remote feature branch
  • pull latest code from the base branch (unless update_from_base_on_release config is set to false)
  • prompt user to confirm they actually want to perform the release
  • check if pull request commit status is currently successful
  • merge current branch into the base branch (or add release label if configured)
  • (optional) cleanup merged branches from remote server

options:

  • --cleanup = automatically cleanup merged branches after release complete

Extra Utility Git Extensions

git cleanup

delete released branches after they have been merged into the base branch.

git nuke

reset an aggregate branch (ex: prototype, staging) back to a known good state.

git buildtag

create a build tag for the current Travis-CI build and push it back to origin

options:

  • --branch = configure the branch name related to the build tag
  • --message = configure the git message associated to the tag

Authentication

In order to access any of the Github APIs you will need to generate a Personal Access Token with repo scopes. You will be prompted for this token before gitx accesses the Github API. After you provide the token it will be saved in ~/.config/gitx.yml so you don't need to provide it again.

Configuration

Any of the default settings defined in the gem can be overridden by creating a custom .gitx.yml file in the root directory of your project.

Contributing

See CONTRIBUTING.md

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

See LICENSE.txt