GitHub's Go-powered CLI
In this episode we discuss Mislav’s experience building not one, but two Github CLIs - hub and gh. We dive into questions like, “What lead to the decision to completely rewrite the CLI in Go?”, “How were you testing the CLI, especially during the transition?”, and “What Go libraries are you using to build your CLI?”
Changelog++ members get a bonus 1 minute at the end of this episode and zero ads. Join today!
- Linode – Get $100 in free credit to get started on Linode – our cloud of choice and the home of Changelog.com. Head to linode.com/changelog
- Equinix – Equinix Metal is built from the ground up to empower developers with low-latency, high performance infrastructure anywhere. Get $500 in free credit to play with plus a rad t-shirt at info.equinixmetal.com/changelog
- Pace.dev – Minimalist web based management tool for your teams. Async by default communication and simplistic task management gives you everything you need to build your next thing. Brought to you by Go Time panelist Mat Ryer. Try it out today!
- Fastly – Our bandwidth partner. Fastly powers fast, secure, and scalable digital experiences. Move beyond your content delivery network to their powerful edge cloud platform. Learn more at fastly.com.
- Mislav Marohnić – Twitter, GitHub, Website
- Jon Calhoun – Twitter, GitHub, Website
- Johnny Boursiquot – Twitter, GitHub, Website
Notes and Links
- The Official Github CLI repo on Github
- The Official Github CLI website
- hub, the original Github CLI - This is the project that eventually lead to the creation of the CLI linked above.
- The past and the future of hub - Mislav wrote an article talking about his experience building hub and some of the challenges.
- Kubectl CLI - Another CLI that was examined when determining how to build the Github CLI and what libraries to consider.
- Github CLI’s go.mod file - Github’s go.mod file has all of the third party libraries they use in the CLI. Useful for anyone starting with a new CLI.
- Git command line tool - The original
- More GitHub-focused podcasts on Changelog.com
Something missing or broken? PRs welcome!