gogit is just enough of a git client (implemented in Go) to initialise a repo, commit, and push to GitHub. It's 400 lines of Go code, and I've experimented writing it in a "scripting style" -- that is, using panic
for error handling (exceptions with a stack trace).
This repo was created and pushed to GitHub using gogit. Read the full story here.