Atlantis v0.45.0: Terraform Drift Detection Comes to Pull Requests

| |

5 min read

Atlantis logo

Atlantis v0.45.0 just landed, and it brings something Terraform teams have been asking about for years: drift detection that lives inside your pull request workflow. If you have ever logged into your cloud console and discovered that someone manually tweaked a resource behind Atlantis’ back, this release is for you.

What is Atlantis? Think of it as a robot teammate for your Terraform and OpenTofu PRs. You open a pull request, Atlantis runs terraform plan, posts the output as a PR comment, and then waits for an approve-and-merge signal before running terraform apply. No more copy-pasting plans into Slack channels. No more "who applied that?" debates. No more accidentally pushing unreviewed infrastructure changes to production.

Why care about v0.45.0? Because drift detection — the ability to notice when your real infrastructure has quietly diverged from your code — has historically required external tools like Terraform Cloud, Spacelift, or custom cron jobs. Now Atlantis is getting in on the game, and it is bringing it directly into the pull request workflow where it makes the most sense.

What’s New in Atlantis v0.45.0

Drift Detection and Remediation APIs (Alpha)

This is the headline feature of v0.45.0. Atlantis now exposes a set of alpha APIs for detecting infrastructure drift, checking drift status, and even remediating it by re-applying your Terraform configuration. The whole thing is wrapped behind two new flags: --enable-drift-detection and --enable-drift-remediation.

Why this matters: Infrastructure drift is one of those problems that sounds boring until it causes an outage. Someone SSHs into a server and changes a security group. A teammate clicks through the console and adds a tag. A lambda function gets a manual env var update that never makes it into code. Over time, your Terraform state quietly becomes a work of fiction. Atlantis v0.45.0 gives you a way to catch this without leaving your PR workflow.

The APIs require authentication via X-Atlantis-Token and enforce repository allowlist validation. Remediation (action: "apply") only works when Atlantis has already detected positive drift for the same repo, ref, base branch, project, path, and workspace — so you cannot accidentally nuke production from a stale API call.

# Enable drift detection
--enable-drift-detection

# Enable drift remediation (destructive - applies plans)
--enable-drift-remediation

# API authentication header
X-Atlantis-Token: your-api-token

The drift system also hooks into Slack and HTTP webhooks, so your team gets notified the moment drift is detected. No more finding out three weeks later during a quarterly audit.

Word of caution: these APIs are alpha. The request and response shapes may change in future releases. Test thoroughly before pointing this at anything you cannot afford to break.

PR #6360

Runtime Localization for PR Comments

Atlantis now speaks more than one language. v0.45.0 adds runtime localization support with built-in English and Spanish catalogs, plus the ability to override any string via a custom YAML config file.

Why this matters: If your platform engineering team spans multiple countries and some teammates prefer reading PR comments in their native language, this is a small but meaningful quality-of-life improvement. It also makes Atlantis more accessible to teams in regions where English is not the primary business language.

# Set the UI language
--language es

# Override specific strings with a custom YAML file
--language-config-file /etc/atlantis/lang-overrides.yaml

PR #6506

New Automerge Controls

Two new flags give you finer control over how Atlantis handles automerge behavior. The --automerge-method flag lets you set a default merge method (currently supported for GitHub), and --disable-automerge-label lets you turn off automerge label behavior entirely.

Why this matters: Some teams require squash merges for clean git history. Others need rebase merges to keep linear history. Until now, Atlantis’ automerge behavior was less configurable than teams wanted. These flags give platform engineers the control they need without resorting to custom webhook hacks.

# Set default automerge method to squash
--automerge-method squash

# Disable automerge label behavior entirely
--disable-automerge-label

PR #6573 | PR #6593

GitHub Team Allowlists Now Honor Hierarchy

Child teams now inherit allowlist permissions from their parent teams. If you have a GitHub organization with nested team structures (say, engineering/platform nested under engineering), the GH_TEAM_ALLOWLIST setting now correctly resolves the hierarchy.

Why this matters: Before this fix, you had to explicitly list every single sub-team in your allowlist — which meant every time someone reorganized your GitHub org structure, your Atlantis config silently broke. This is exactly the kind of fix that saves hours of debugging at 2 AM.

PR #6365

Bug Fixes and Improvements

Beyond the headline features, v0.45.0 ships a solid set of fixes that improve day-to-day reliability:

  • Regex project plans now scope correctly when --restrict-file-list is enabled, fixing false negatives in file-matching logic (PR #6598).
  • OpenTofu version detection now uses the project distribution method instead of guessing, so Atlantis correctly identifies your OpenTofu binary (PR #6597).
  • Corrupted binaries trigger a re-download instead of silently failing, which means Atlantis recovers from partial downloads gracefully (PR #6454).
  • Terraform/Terragrunt directory detection is now unified, properly recognizing .tf, .tf.json, and terragrunt.hcl files (PR #6455).
  • Path traversal hardening addresses CWE-22 path-expression issues (PR #6254).
  • Docker healthcheck port fallback behavior is preserved after a regression (PR #6588).

Provider fixes include pagination URL validation for Bitbucket Cloud (PR #6260) and a fix that prevents GitHub App checkout behavior from leaking to non-GitHub repositories (PR #6119).

Slack notifications now show the PR head branch instead of the base branch (PR #6316), and can optionally include the PR description in the notification (PR #6540) — a small but welcome improvement for teams that live in Slack.

Atlantis v0.45.0 is the kind of release where the alpha feature headline (drift detection) steals the show, but the automerge controls, localization, and team hierarchy fixes are the things you will actually use every single day.

Learn More