Using Nitro for Terraform deprecations
Author

Date Published
Share this post

Recently on The Builder’s Blog, we introduced our built-in-house agentic development tool, Nitro. Among its many capabilities, Nitro can open pull-requests and commit code for us; we think it’s pretty awesome. While there are a few ways to kick off a Nitro workflow, one that I was eager to try was to start within our project management tool, Linear.
I want to briefly mention my use case before we get into the details. After the introduction of state locking in S3, Terraform deprecated the older DynamoDB-based state locking. In some cases it can be just a single-line change. In other cases, a lot more. The gist of the change is the following:

I started by writing up a Linear issue describing the problem context and the solution. Then I applied the required label to my Linear issue to tell Nitro which repository to run in. I assigned the issue to Nitro and watched the ✨magic ✨ unfold. Within moments, the pull request was ready for me in Gitlab, with the exact change I needed to make. This was such a revelation for me: knowing that the time-cost of both making code changes and creating a pull request has been reduced by this degree.

Now, there’s a debate to be had about the complexity level that AI tooling is capable of, and more specifically, regarding the accuracy and quality of those changes. However, for a small change like this that needed to be repeated across many different Terraform projects, it was a smooth experience for me to practice our long-held tradition of duck-sized pull requests with the help of AI.
Sure, I could have opened all the changes myself, one-by-one, following the same steps each time:
- Make the changes
git commit -m “Update Terraform state lock deprecation”git push origin <branch-name>- Write a useful description
- Open the pull request
While we’re still exploring AI’s boundaries of usefulness, instructing one tool to create 10 (or more!) changes in parallel, while maintaining quality? That is very useful!
Having our AI tooling do simple, repetitive tasks that span multiple domains is a productivity boon. It works exactly as we hope AI would: take care of menial tasks, while giving humans the opportunity to focus on more important things. We still review and test our changes before merging them into the main branches, but being able to automate these types of changes helps us move faster and ship more in a day than we could have otherwise.

.png?2025-12-11T15:29:50.639Z)