Gitcycle

Tame your development cycle.

Get Started

Visit gitcycle.com to set up your environment.

Create Branch

Checkout the branch that you will eventually merge your feature into:

git checkout master

Type gitc + your ticket URL to create a new branch:

gitc https://xxx.lighthouseapp.com/projects/0000/tickets/0000-my-ticket

Pull Changes from Upstream

When you're developing, you may need to pull new changes from the upstream branch that you will eventually merge your feature into:

gitc pull

Discuss Code

After pushing one or two commits, put the code up for discussion:

gitc discuss

Mark as Ready

When the branch is ready for merging, mark it as ready:

gitc ready

This will mark the pull request as "Pending Review".

Code Review

Managers will periodically check for "Pending Review" issues on GitHub.

Once reviewed, they will mark the issue as reviewed:

gitc reviewed [GITHUB ISSUE #] [...]

Quality Assurance

QA engineers will periodically check for "Pending QA" issues on Github.

To create a new QA branch:

gitc qa [GITHUB ISSUE #] [...]

This will create a new QA branch containing the commits from the related Github issue numbers.

This branch can be deployed to a staging environment for QA.

QA Fail

If a feature does not pass QA:

gitc qa fail [GITHUB ISSUE #] [...]

To fail all issues:

gitc qa fail

This will add a "fail" label to the issue.

QA Pass

If a feature passes QA:

gitc qa pass [GITHUB ISSUE #] [...]

To pass all issues:

gitc qa pass

This will add a "pass" label to the issue and will complete the pull request by merging the feature branch into the target branch.

More

Reset Branch

If you associate the wrong branch with a ticket, use gitc reset to fix it.

Checkout the branch that you will eventually merge your feature into:

git checkout master

Type gitc reset + your ticket URL to reset the branch:

gitc reset https://xxx.lighthouseapp.com/projects/0000/tickets/0000-my-ticket

Track Upstream Branch

If you are working in a fork, it is easy to track upstream branches:

gitc track [BRANCH] [...]

Todo

  • Instead of detecting CONFLICT, use error status $? != 0
  • Add comment on lighthouse with issue URL
  • Label issues with ticket milestone?
  • gitc qa pass, should not set ticket to pending-approval if its already resolved
  • gitc pull before gitc ready
  • Note you can use gitc with a string
  • Tag issue with Lighthouse tags (if == backend or frontend)
  • On pass or fail, send email to Github email
  • If gitc reset happens on branch with Github issue, close the existing issue
  • Change QA branch name to qa_login_branch
  • LH states aren't being updated to pending-* states, the active state update works, reported by Jimmy