Add types for branches, commits, and commit metadata

Review Request #10009 — Created June 8, 2018 and submitted — Latest diff uploaded

Information

rb-gateway
master
2d6e0bf...

Reviewers

This patch updates our internals to return objects from Repository
methods instead of just returning raw responses. This moves the
serialization code into the API endpoints, instead of having it in every
Repository implementation. This also allows our tests to compare these
structures directly, instead of re-parsing the JSON into a private
struct.

Additionally, the Git unit tests have been updated to use
assert.Equal(expected, actual), which is what the library expects.

Ran go fmt ./....
Ran go test ./....