HustleAndFlow
Start
Usage: start_work_on [-n <issue_type> <issue_title>] [-i <issue_number>]
-n <issue_type> <issue_title>
Start work on a new issue. This command will:
* Runs issue-tracker-specific pre-start-new-issue tasks.
* Checks to see if an issue with that exact type and title
already exists. If it does, it will perform all of the actions
as though the "-i" flag was used instead of the "-n" flag.
* Create a new issue with the given type and title.
* Open your default browser so you to supply additional
information.
* Create a branch with a dasherized version of the issue title
as well as a dasherized version of the action and issue number
in accordance with the type of issue tracker you're using.
For example, if using Github, and the created issue number was
42, with a type of "feature" and a title of "Add awesome new
feature!!!", this command would create a branch name of:
feature/add-awesome-new-feature-closes-42
* Pushes the newly created branch to Github
* Performs any issue tracker-specific post-start-new-issue tasks
-i <issue_number>
Starts work on an existing issue. This command will:
* Runs issue-tracker-specific pre-start-existing-issue tasks.
* Check to see if the issue exists. If it does, it will display
the issue information and ask for confirmation. If it does
not, the user will be alerted and the command will exit.
* Assuming the issue exists, and it is unassigned, it will
assign it to the user. If it is already assigned, the user
will be asked if they would like to reassign it to themselves.
* Assuming the issue exists, the command will check to see if
there are any branches which already exist that may be
applicable to work on. They will be displayed in the format:
1. * LT [Jeff Felchner] feature/add-awesome-new-feature-closes-42
2. R [Sonny Gonzalez] feature/add-awesome-new-feature-closes-42-alt-1
3. L [Drew Montgomery] feature/add-awesome-new-feature-closes-42-alt-2
c. Create a new branch
This means that there are three branches which are already
being worked on for that issue. The different parts of the
listing are as follows:
*: Indicates the current branch
L: Indicates the a local branch
T: Indicates the local branch is tracking a remote branch
R: Indicates a remote-only branch
The name field indicates the person the branch is currently
assigned to. If unassigned, it will be first person who
committed to the branch.
If option "c" is chosen, a new branch will be created with an
additional increment added to the "alt" portion of the name.
If no applicable branches exist, one will be created for you.
* Runs issue-tracker-specific post-start-existing-issue tasks.
Stop
Usage: ready_for_review [-n]
Process:
* Runs issue-tracker-specific pre-ready-for-review tasks.
For example, if using Github, a pull-request will be
created for the branch.
* Checks to see if the branch is already being reviewed.
If it is, the command aborts.
* Makes sure that the branch is up-to-date with origin/master
* Runs all of the tests
If the tests fail, the command will abort.
* Runs all of the style checks
If the style checks fail, the command will abort.
* All updated changes are pushed to origin.
* The issue modified to indicate that it is ready for review.
* By default, the users whose code you have modified, will be
notified that their assistance is requested for review.
* Runs issue-tracker-specific post-ready-for-review tasks.
Options:
-n Skips test run and style checks
Review
Usage: start_review [-i <issue_number>] [-r]
-i <issue_number>
Begins the review of an existing issue (or Pull Request).
* Runs issue-tracker-specific pre-start-review tasks.
* Updates master with origin/master
* Retrieves all branches/issues that are ready for review and
displays them to the user.
Ready for Review
-------------------------------------------------------------------------
1. * LT [Jeff Felchner] feature/add-awesome-new-feature-closes-42
2. R [Sonny Gonzalez] feature/add-awesome-new-feature-closes-42-alt-1
3. L [Drew Montgomery] feature/add-awesome-new-feature-closes-42-alt-2
Other Available Branches
-------------------------------------------------------------------------
4. * LT [Michael Myers] refactor/change-things-up
5. R [Freddy Kreuger] bugfix/slay-those-bugs
6. L [Jason Voorhees] chore/start-a-fire
* Checks to see if the issue is currently being reviewed. If so
the command will abort.
* Assigns the issue (or Pull Request if using Github) to the
reviewer.
* Makes sure that the selected branch is up-to-date with
origin/master
* Runs all of the tests
If the tests fail, the command will abort.
* Runs all of the style checks
If the style checks fail, the command will abort.
* All updated changes are pushed to origin.
* The issue modified to indicate that it is being reviewed.
* The user who was previously assigned to the issue will be
notified that their code is being reviewed.
* The user will be presented with a diff command (which will
also be copied to their clipboard). When run, it will show
them all of the changes that are being asked to be reviewed.
* Runs issue-tracker-specific post-start-review tasks.
Options:
-r Forces the branch to be reviewed by the current user even if
it appears it is already being reviewed.
Finish Review
Usage: finish_review [-m]
Completes the review of the current issue (or Pull Request).
* Runs issue-tracker-specific pre-finish-review tasks.
* Adds a git note to all commits stating:
Reviewed-by: Your Username <[email protected]>
* Merges the branch into master using "git-backmerge"
* Removes anyone assigned to the issue (or Pull Request)
* Marks the issue as "reviewed"
* Adds a comment that the issue has been reviewed.
* If applicable, make sure that the issue has been marked as
"finished", "closed", etc.
* Runs issue-tracker-specific post-finish-review tasks.
Options:
-m Skips automerging of the branch into master