I'm using go-git to do some quick in memory git clones and pushes and it works beautifully.
I didn't realize that go allows you to ignore error handling. The Commit and Add functions return an error that I was ignoring and so I wasn't catching an error properly.
I had found out that the git author field was required and it must have been that it was part of the environment previously but because I'm trying to use this script on a new machine, it doesn't have it.
The error was a bit of a pain in the ass to track down and I had thought this was what go was trying to defend against. My assumption was clearly wrong, errors can be ignored which makes it like every other language where I can accidently ignore an error condition.
I'll need to look into this deeper but at least my script is back to working now.