Commit Messages and Automated Releases

Writing software is interesting. At one level, we write code to build a product, solve problems and make our lives easier. Whilst we’re building a product, we need to communicate to current and future selves and team members about what we’re doing and how our code works. Some of this communication is directly in code. Our function names, our variable names, our class names, our comments, and the list goes on.
Read more →

Review Bots - GCP

As mentioned in a previous post, I decided to deploy to GCP. Here, I found a few options for running the bot and the model. Google Kubernetes Engine Google Functions Google Cloud Run I experiemented with all 3 possible deployment targets, using Terraform to deploy the infrastructure. GKE Configuring GKE in GCP is a really nice experience. It was quite straight forward to setup the cluster with a couple of terraform resources - google_container_cluster and google_container_node_pool.
Read more →

Review Bots - The Code

Great. I have some Machine Learning models to categorise Pull Requests. But, how do I build a bot? Do I make a Github Action or a Github Application? How could I implement it? Well, part of the motivation for this was to make these bots simple to use and manage across many repositories. If I made a Github Action, I’d need to create a workflow in every repository. But, if I used a Github Application, I could install it once and it could be run on every repo!
Read more →

Review Bots - The Tech

Now that I had some ideas about what I wanted to build, I needed to make some technology decisions. At my day job, I use Azure a lot. It would be easier to look there, but I wanted to learn some AI/ML. I had also used some AWS at work and personally, but I didn’t have any experience with GCP. I did some research to compare the AI/ML features of AWS, Azure and GCP and ended up choosing GCP.
Read more →

Review Bots - The Idea

Review Bots - The Idea I’ve been writing code and building solutions in IT for a while now. It was relatively simple when I worked by myself; it was only me. I had my own expectations about how to implement a feature, or fix a bug. I did consider my future self, and future developers who may pick up the project. However, I didn’t have someone else reviewing my code, or the size of my changes.
Read more →