Change log messages so that they are 'properly' wrapped at 80 columns
Add a function to get the signoff identity from git
Add a function to get the previous set of commit subjects from git
Add a function to get the preivous full commit from git
Add an environment variable to the github plugin for the issue tag pattern
Fix wording in the docs
Fix github issue tracker info extraction to be shell agnostic
Add a function to get the issue tracker name to the issue tracker plugin
Add a plugin for gerrit code review
Chore: Move and remove unused git hook templates

I thought the git prefix on the templates directory was redundant and there's no
use keeping hooks around that we're not using.

Most of these were commit message checks that we're going to be handling in a
different way soon.

Anyone linking to the previous commit hook or template directory location will
begin to receive an error.

Change-Id:     I583bcf34f04851956de915bedf8e80ae715ba6ca

Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Refactor: Tweak git diff and log colors

I wanted to make it more clear when viewing diffs which part of the code should
be focused on.

This change makes the unchanged portion of the diff much less emphasised.

This requires users to have their colors tweaked in a very specific way so that
"dim black" is a dark gray and not "black black".

I also modified the log colors so that they were easier to see when used with
the '-p' log option.

I fixed this by making the "subject" line of the log much brighter than the
diffed portion.

Change-Id:     I641985efdb5254dd8602c1b440b645889de7e272

Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: Add new git commit templates

This will help us with our workflow such that it will be much more obvious to us
how to write a good commit message.

We'll use these as a starting place and then tweak as we need to.

There are two different versions.  One is a verbose 'training-wheels' version
which gives much more detail on how to write a good commit message.  We can
transition to the second one once we get in the flow.

Change-Id:     Ie1ce750b9b636d7cf8b7ff25f6fb1d7bf6cde85a

Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: Add git commit hook templates

We want to make sure our commit messages are consistent.  These hooks use the
commit message templates and fill in placeholders in the template with various
pieces of information.

It's designed in a way to be extensible with additional issue trackers (eg
Pivotal, Trello, etc).

Uses the previously committed `issue_tracker` plugin to pull various pieces of
information out of the branch name.  For example, a branch name of:

    feature/foobar-fixes-42-51

Assuming the issue tracker is Github and the repo's location on Github includes
'myorg/myrepo', it will generate the following information which will be added
to the commit message:

* Issue Tag:    Feature
* Issue Action: Fixes
* Issues:       #42, #51
* Issue URLs:   https://github.com/myorg/myrepo/issues/42
                https://github.com/myorg/myrepo/issues/51
* Branch Name:  feature/foobar

Change-Id:     Ib6a1e83b52cf79b089df25bd2ef64de004b7b19d

Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Bugfix: Add a default issue tracker name and issue type when no tracker is set

There was an issue where, if there was no `git config workflow.issues.tracker`
value set, when the commit message template was generated, the footer section
which show the template for the issue URLs was incomplete.

Now, if there is no tracker value, it defaults to "My Tracker" for the name and
"Issue" for the type.

Change-Id:     I1e704a4800b70d696394f8c997015bf0d600280d

Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: Remove status and specify default commit message template in global gitconfig

This change removes the default 'status' listing in all git commit message
templates as well as specifies that all git commits should use our new commit
message template by default.

I'm assuming that anyone using these thing is using all of shellwreck. If they
are not, then this will fail.

Change-Id:     Ib013be7b3113b5843333ccbcaa1e8049da0d2c2f

Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: Switch from using 'c' as 'commit with message' to just 'commit'

We want to now focus on writing good commit messages.  Because of this,
specifying 'one-liner' commit messages from the command line is not a conducive
environment for that.

I changed the 'c' alias to remove the '--message' flag and instead added a new
alias 'cm' for those times when you absolutely want to commit a one-liner from
the command line.

Change-Id:     Id3746e8617b388fddcbcb2d4e47b6e029ca9a447

Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: Change diff context from 10 lines to 5 lines

The diffs, when stacked were a bit too long.  I think we can get by with 5 lines
of context.

--------------------------------------------------------------------------------
Change-Id:     Ia0fb8c800f058d20b8521a21be15ee97b1cd5a8f
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: Make diffs prettier by performing a word diff rather than a line diff

--------------------------------------------------------------------------------
Change-Id:     I8086332536dff3cd51dfefc8b5a14b43691b797f
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: Remove unwanted empty blank lines from commit messages

I believe that the %w log format flag has a bug.  It's removing newlines from
commit messages when I don't believe it should.  So we're going to create the
commit messages we want and not the ones that will work around that particular
bug.  Once it's fixed, our commit messages will look correct.

--------------------------------------------------------------------------------
Change-Id:     I206013ec163f6816d12061418d410755b3d618ae
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: Allow different types of commits to be handled differently

We want to be able to handle merge commits differently than we handle 'regular'
commits.  For example, if Github creates a reference for _every_ commit that we
make on the original issue, then we certainly don't want to do that.  Instead we
can add the references only when it's merged back into master.

We do this by checking to see which type of commit we're preparing for (based on
what git sends us).  Currently we're only handling merge and 'regular' commits.
Amended commits and commits with inline messages still work with their default
style.

--------------------------------------------------------------------------------
Change-Id:     I632c40f55fcab94fb392560a34a1c23a1051423a
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>