Gitcycle
Tame your development cycle.
Gitcycle is a drop-in replacement for git that makes pull request dev cycles super easy.
Get Started
Visit gitcycle.com to set up your environment.
Create Branch
Checkout the branch that you will eventually merge your feature into:
gitc 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 an upstream branch:
gitc pull
Push Changes
gitc push
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
Checkout Upstream Branch
If you are working in a fork, it is easy to checkout upstream branches:
gitc checkout [BRANCH]
Collaborate
Its easy to checkout branches from other forks:
gitc checkout [USER] [BRANCH]
QA Status
See who is QA'ing what:
gitc qa
Redo Branch
If you associate the wrong branch with a ticket, use gitc redo
to fix it.
Checkout the branch that you will eventually merge your feature into:
gitc checkout master
Type gitc redo
+ your ticket URL to reset the branch:
gitc redo https://xxx.lighthouseapp.com/projects/0000/tickets/0000-my-ticket
Todo
- Add ability to associate multiple branches/pull requests with one Lighthouse ticket
- Add comment on lighthouse with issue URL
- gitc discuss should tag issue with 'Discuss'
- On pass or fail, send email to Github email
- Note you can use gitc with a string
- gitc qa pass, should not set ticket to pending-approval if its already resolved
- If gitc reset happens on branch with Github issue, close the existing issue
- Add comment on lighthouse with issue URL
- Instead of detecting CONFLICT, use error status $? != 0
- Label issues with ticket milestone
- gitc qa pass # since we're changing this to pass all the tickets, we need to loop through all the merged issues and update the lighthouse state to pending-qa
- There's still a Tagging Issue I tried to fix parseLabel http://d.pr/8eOS , Pass should remove Pending, but remove the Branch Name
- gitc ready - possibly do syntax checks