Agronomist¶
Agronomist continuously monitors and reports on module version updates across Terraform and OpenTofu codebases. It identifies outdated ?ref= pins in .tf and .hcl files, resolves the latest available versions, and can apply updates automatically — keeping your Infrastructure as Code current, secure, and maintainable with minimal manual effort.
How it works¶
- Scan
.tfand.hclfiles forsourcereferences that contain?ref=. - Resolve the latest available version using Git tags, the GitHub API, or the GitLab API.
- Generate a structured JSON report and an optional human-readable Markdown summary.
- Optionally apply updates in place across all affected files.
Core features¶
- Multi-resolver support: Git, GitHub API, GitLab API, or automatic detection.
- Category tagging for grouping updates by team or domain (e.g.,
aws,database). - Blacklist filtering to permanently ignore specific repositories, modules, or files.
- CI/CD integration for GitHub Actions and GitLab CI, including automated pull and merge request creation.
- Python library API for custom automation workflows.
For SREs and infrastructure teams¶
If you want to install Agronomist and run it against your infrastructure repositories, start here:
- Getting Started — install, configure, and run your first report in minutes.
- CLI Reference — full command and option reference.
- Configuration — define categories and blacklists with
.agronomist.yaml. - Resolvers — choose the right version resolution strategy for your environment.
- Reports — understand the JSON and Markdown report formats.
- GitHub Action — automate updates via GitHub Actions workflows.
- GitLab CI — automate updates via GitLab CI pipelines with automatic MR creation.
- Troubleshooting — common issues and solutions.
For contributors and developers¶
If you want to contribute to Agronomist or integrate it as a Python library:
- Architecture — internal design, components, and data flow.
- Development — environment setup, tooling, build process, and release workflow.
- Testing — test suite structure, how to run tests, and how to add new ones.
- API Reference — use Agronomist as a Python library in your own tooling.