Yeah, sounds right. This branch was more about just experimenting with the capabilities of the libgit2 library, so the class methods kind of mirror the functions in libgit2 which are separated into modules - e.g. git_repository_method_name, git_commit_method_name.

There could be a CommitWalker class which is constructed on a repository, and the commit_lookup method may be better suited in the GitCommit class as a static (class level) method which takes the repository to look up a commit in, and the ID of the commit to find. What do you think?

Am probably going to use this pull request to clean up the responsibilities before it gets pulled into master.