cannon - Automate changes across git repos

cannon is a small CLI tool that allows you to quickly apply changes to multiple repos. It is very useful if there are a number of small but identical changes that all need to be made to a large amount of repos. While working on the Developer Acceleration team at TouchBistro I found myself having to do this manually a lot. We had 20+ microservices which needed the same configuration changes. Having to go into each repo and make the changes was an extremely tedious process, so I decided to automate it.

The biggest challenge with cannon was coming up with a a simple yet flexible and robust configuration format. The config file needed to be able to express all the various use cases required (modify lines, delete lines, create files, etc) but also be easy to understand and use. I created a set of actions that seemed to cover all use cases and also allowed regular expressions to be used when matching text in files.

What technologies does it use?

cannon is built in Go.

Want to know more?

Check out the GitHub repository for more information about cannon and how to use it. Also check out the blog post I wrote for the TouchBistro Engineering blog about cannon.