## runatlantis/atlantis — v0.46.0…v0.47.0

_56 commits._

### Features
- **feat: add --plan-store-dir to decouple plan file storage from data-dir (#6636)** (984bd5a)
- **feat: Expose plan_output on POST /api/drift/detect and clarify drift API workflow docs (#6709)** (04967b5)
- **feat(#303): include commit SHA in working directory lock errors (#6646)** (cca0732)
- **feat: Plan store object storage (#6312)** (f8b37af)

### Fixes
- **fix: NoOpLocker.Unlock returns non-nil lock, breaking DELETE /locks error handling (#6775)** (d197237)
- **fix: scope misspell "did you mean" check to default executable name (#6690)** (cb0fe6c)
- **fix: only require a managed plan file for managed apply workflows (#6781)** (83d394b)
- **fix: accept 2xx responses as success in HTTP webhooks (#6648)** (5f5f5c8)
- **fix(deps): update module github.com/hashicorp/hc-install to v0.9.5 in go.mod (#6774)** (7016f37)
- **fix(deps): update module github.com/go-playground/validator/v10 to v10.30.3 in go.mod (#6770)** (efe46ee)
- **fix: avoid nil terraform client dereference in NewServer (#6697)** (994732f)
- **fix(deps): update github.com/hashicorp/terraform-config-inspect digest to 2fb54c2 in go.mod (#6730)** (9d38004)
- **fix: bump alpine base image to 3.23.5 to update libssl3/libcrypto3 (#6708)** (85c5147)
- **fix: exempt readiness probe from web authentication (#6669)** (692c4f6)
- **fix: make GitHub token rotation concurrency-safe (#6670)** (c0170f6)
- **fix(deps): update module golang.org/x/text to v0.39.0 [security] (#6687)** (a06145d)
- **fix: handle malformed plans and VCS transport failures (#6672)** (8b37caf)
- **fix: wire SkipPRRequirements for no-PR API and drift remediation contexts (#6664)** (3fc25f4)

### Docs
- **docs: Promote Terraform distribution agnosticism in Terragrunt example (#6620)** (5e42de2)

### Chore
- **chore(deps): update dorny/paths-filter digest to 0e4a8c6 in .github/workflows/website.yml (#6754)** (e366656)
- **chore(deps): update docker/dockerfile:1 docker digest to ecfaec9 in dockerfile (#6780)** (9928a77)
- **chore(deps): update dependency mermaid to v11.16.1 [security] (#6744)** (0a08cd6)
- **chore(deps): update actions/setup-go action to v6.5.0 in .github/workflows/atlantis-image.yml (#6778)** (b859034)
- **chore(deps): update actions/checkout action to v6.1.0 in .github/workflows/scorecard.yml (#6777)** (9d81ac2)
- **chore(deps): update module golang.org/x/mod to v0.40.0 [security] (#6771)** (d163012)
- **chore(deps): update dorny/paths-filter action to v3.0.4 in .github/workflows/markdown-lint.yml (#6763)** (92ce5c5)
- **chore(deps): update step-security/harden-runner digest to b09bb98 in .github/workflows/scorecard.yml (#6757)** (7803f1d)
- **chore(deps): update github/codeql-action digest to 5595cca in .github/workflows/codeql.yml (#6752)** (554d3f1)
- **chore(deps): update ossf/scorecard-action action to v2.4.4 in .github/workflows/scorecard.yml (#6748)** (0488605)
- **chore(deps): update dependency opentofu/opentofu to v1.12.5 in dockerfile (#6735)** (5218252)
- **chore(deps): update step-security/harden-runner digest to bf7454d in .github/workflows/scorecard.yml (#6726)** (1b7077d)
- **chore(deps): update redis:8.6-alpine docker digest to cd218f4 in docker-compose.yml (#6722)** (73b3048)
- **chore(deps): update goreleaser/goreleaser-action digest to f06c13b in .github/workflows/release.yml (#6721)** (2a17b14)
- **chore(deps): update golangci/golangci-lint-action digest to ba0d7d2 in .github/workflows/go-lint.yml (#6719)** (c5d4e19)
- **chore(deps): update golang:1.26.5 docker digest to 3aff665 in testing/dockerfile (#6716)** (229ed07)
- **chore(deps): update docker/login-action digest to dbcb813 in .github/workflows/testing-env-image.yml (#6713)** (6e51a74)
- **chore(deps): update docker/login-action digest to 371161b in .github/workflows/testing-env-image.yml (#6711)** (406113f)
- **chore(deps): update module github.com/klauspost/compress to v1.18.7 [security] (#6706)** (a80af8e)
- **chore(deps): update gcr.io/oss-fuzz-base/base-builder-go docker digest to bb153df in .clusterfuzzlite/dockerfile (#6705)** (7147dbc)
- **chore(deps): update gcr.io/oss-fuzz-base/base-builder-go docker digest to e7292be in .clusterfuzzlite/dockerfile (#6702)** (9ce8e28)
- **chore(deps): update docker/login-action digest to abd2ef4 in .github/workflows/testing-env-image.yml (#6699)** (b883706)
- **ci: verify ngrok archive before E2E execution (#6671)** (1ed6077)
- **ci: cover nested Go modules and JavaScript sources (#6674)** (b76918d)
- **chore(deps): update actions/upload-code-coverage digest to 1c15be3 in .github/workflows/code-coverage.yml (#6692)** (4a0ab92)
- **chore(deps): update lodash-es to 4.18.1 (#6673)** (ad9d80e)
- **chore(deps): Bump dompurify from 3.4.11 to 3.4.12 (#6688)** (ba5b27f)
- **chore(deps): update actions/checkout digest to d23441a in .github/workflows/website.yml (#6691)** (ecc9e23)
- **chore(deps): update docker/setup-qemu-action digest to 96fe6ef in .github/workflows/testing-env-image.yml (#6680)** (e9a0870)
- **chore(deps): update docker/setup-buildx-action digest to bb05f3f in .github/workflows/testing-env-image.yml (#6679)** (f580ebc)
- **chore(deps): update docker/metadata-action digest to dc80280 in .github/workflows/atlantis-image.yml (#6676)** (9ce030a)
- **chore(deps): update docker/login-action digest to af1e73f in .github/workflows/testing-env-image.yml (#6663)** (dcc8412)
- **build: verify container inputs and align Go toolchain (#6668)** (7bec5a3)
- **chore(deps): bump Alpine curl to 8.20.0-r0 (#6665)** (1692173)
- **chore(deps): update actions/setup-node digest to 2499707 in .github/workflows/website.yml (#6662)** (a34da7e)
- **chore(deps): update actions/stale digest to 1e223db in .github/workflows/stale.yml (#6658)** (05cf91d)
- **chore(deps): update docker/build-push-action digest to 53b7df9 in .github/workflows/testing-env-image.yml (#6629)** (5683ed5)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/runatlantis/atlantis?utm_source=github-action)._