Back to Go

It’s been a while since I played around with Go, but I have decided that I have the need for a command line tool, and thought that Go would be the best tool for the job. It’s going to be a command line tool for interfacing and managing a GitHub Enterprise instance.

As a developer, I became fond of using TDD for development. I have previously done this in Java, having spent so many years developing in Java. I was comfortable with Java, but it’s not really suitable for creating a command line tool. I’m always for developing new skills and having moved to DevOps for the past 2 years, I’m still keen to keep my software engineering skills sharp.

Go has many useful libraries that can really help with the development of a professional feeling command line application, and will help to cut down a lot of the boilerplate development. I have found the following libraries that I will be investigating for this project.


A highly configurable command line parsing library that allows me to configure the commands that I want my tool to have.


Pairs nicely with Cobra and allow for configuration through a config file to specify defaults or custom values to configure your tool.


A wrapper for the GitHub API which will allow me to make calls and handle the responses from the GitHub instance.


I am still investigating libraries for Testing and Logging.  There are many options, but I need to check out more of these to find out the ones that work for me.

I will post progress and any details that I find interesting… stay tuned