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