docs: add version annotations to server configuration and repo-level atlantis.yaml (#5631)

This commit is contained in:
PePe Amengual
2025-08-12 10:02:22 -07:00
committed by GitHub
parent f8ad4caede
commit 1cd51d749d
3 changed files with 1486 additions and 1132 deletions

View File

@@ -0,0 +1,328 @@
# Atlantis Features Version Analysis
This document provides a comprehensive analysis of Atlantis features and the versions when they were introduced, based on the changelog, merged PRs, and documentation.
## Server Configuration Features
### Core Features (v0.1.0+)
These features have been available since the initial release or very early versions:
- `--port` - Port to bind to (default: 4141)
- `--log-level` - Log level (debug|info|warn|error)
- `--gh-user` - GitHub username of API user
- `--gh-token` - GitHub token of API user
- `--gh-webhook-secret` - Secret used to validate GitHub webhooks
- `--repo-allowlist` - Allowlist of repositories (deprecated `--repo-whitelist` in v0.13.0)
- `--data-dir` - Directory where Atlantis stores its data
- `--atlantis-url` - URL that Atlantis is accessible from
- `--web-username` - Username for Basic Authentication
- `--web-password` - Password for Basic Authentication
- `--web-basic-auth` - Enable Basic Authentication on web service
### v0.13.0
- `--allow-draft-prs` - Respond to pull requests from draft PRs
### v0.15.0
- `--skip-clone-no-changes` - Skip cloning repo during autoplan if no changes to Terraform projects
- `--disable-autoplan` - Globally disable autoplanning
### v0.16.0
- `--parallel-pool-size` - Max size of wait group for parallel plans/applies
- `--disable-apply-all` - Disable `atlantis apply` command (requires specific project/workspace/directory)
### v0.16.1
- `--gh-app-slug` - GitHub App slug for identifying comments
- `--disable-repo-locking` - Stop Atlantis from locking projects/workspaces
### v0.17.0
- `--enable-policy-checks` - Enable server-side policy checks with conftest
- `--autoplan-file-list` - Modify global list of files that trigger project planning
- `--silence-no-projects` - Silence Atlantis from responding to PRs when no projects
- `--enable-regexp-cmd` - Enable regex commands for project targeting
- `--disable-global-apply-lock` - Remove global apply lock button from UI
- `--automerge` - Automatically merge pull requests after successful applies
### v0.18.0+
- `--default-tf-version` - Default Terraform version (introduced in v0.13.0, refined in later versions)
- `--tf-download` - Allow Atlantis to download Terraform versions
- `--tf-download-url` - Alternative URL for Terraform downloads
### v0.19.0
- `--hide-prev-plan-comments` - Hide previous plan comments to declutter PRs
### v0.19.5
- `--var-file-allowlist` - Restrict access to variable definition files
### v0.20.0+
- `--gh-app-id` - GitHub App ID for installation-based authentication
- `--gh-app-key` - GitHub App private key
- `--gh-app-key-file` - Path to GitHub App private key file
- `--gh-app-installation-id` - Specific GitHub App installation ID
### v0.21.0
- `--markdown-template-overrides-dir` - Directory for markdown template overrides
### v0.22.0+
- `--parallel-plan` - Run plan operations in parallel
- `--parallel-apply` - Run apply operations in parallel
- `--abort-on-execution-order-fail` - Abort execution on failures
### v0.23.0+
- `--enable-plan-queue` - Enable plan queue feature for queuing plan requests
- `--enable-lock-retry` - Enable automatic retry of lock acquisition
- `--lock-retry-delay` - Delay between lock retry attempts
- `--lock-retry-max-attempts` - Maximum lock retry attempts
### v0.24.0+
- `--default-tf-distribution` - Default Terraform distribution (terraform/opentofu)
- `--terraform-cloud` - Terraform Cloud integration features
### v0.25.0+
- `--enable-profiling-api` - Enable pprof endpoints for profiling
- `--enable-diff-markdown-format` - Format Terraform plan output for markdown-diff
### v0.26.0+
- `--autoplan-modules` - Enable autoplanning when modules change
- `--autoplan-modules-from-projects` - Configure which projects to index for module changes
### v0.27.0+
- `--autodiscover-mode` - Configure autodiscovery mode (auto|enabled|disabled)
- `--include-git-untracked-files` - Include untracked files in modified file list
### v0.28.0+
- `--restrict-file-list` - Block plan requests from projects outside modified files
- `--silence-allowlist-errors` - Silence allowlist error comments
- `--silence-fork-pr-errors` - Silence fork PR error comments
- `--silence-vcs-status-no-plans` - Silence VCS status when no plans
- `--silence-vcs-status-no-projects` - Silence VCS status when no projects
### v0.29.0+
- `--discard-approval-on-plan` - Discard approval if new plan executed
- `--emoji-reaction` - Emoji reaction for marking processed comments
- `--hide-unchanged-plan-comments` - Remove no-changes plan comments
### v0.30.0+
- `--gh-allow-mergeable-bypass-apply` - Allow mergeable mode with required apply status check
- `--ignore-vcs-status-names` - Ignore VCS status names from other Atlantis services
### v0.31.0+
- `--fail-on-pre-workflow-hook-error` - Fail if pre-workflow hooks error
- `--disable-markdown-folding` - Disable markdown folding in comments
### v0.32.0+
- `--max-comments-per-command` - Limit comments published per command
- `--quiet-policy-checks` - Exclude policy check comments unless errors
### v0.33.0+
- `--disable-unlock-label` - Stop unlocking PRs with specific label
- `--disable-autoplan-label` - Disable autoplanning on PRs with specific label
### v0.34.0+
- `--allow-commands` - List of allowed commands to run
- `--allow-fork-prs` - Respond to pull requests from forks
### v0.35.0+
- `--azuredevops-hostname` - Azure DevOps hostname support
- `--azuredevops-token` - Azure DevOps token
- `--azuredevops-user` - Azure DevOps username
- `--azuredevops-webhook-password` - Azure DevOps webhook password
- `--azuredevops-webhook-user` - Azure DevOps webhook username
### v0.36.0+
- `--bitbucket-base-url` - Bitbucket Server base URL
- `--bitbucket-token` - Bitbucket app password
- `--bitbucket-user` - Bitbucket username
- `--bitbucket-webhook-secret` - Bitbucket webhook secret
### v0.37.0+
- `--checkout-depth` - Number of commits to fetch from branch
- `--checkout-strategy` - How to check out pull requests (branch|merge)
### v0.38.0+
- `--config` - YAML config file for flags
- `--repo-config` - Path to server-side repo config file
- `--repo-config-json` - Server-side repo config as JSON string
### v0.39.0+
- `--gitea-base-url` - Gitea base URL
- `--gitea-token` - Gitea app password
- `--gitea-user` - Gitea username
- `--gitea-webhook-secret` - Gitea webhook secret
- `--gitea-page-size` - Number of items per page in Gitea responses
### v0.40.0+
- `--gitlab-hostname` - GitLab Enterprise hostname
- `--gitlab-token` - GitLab token
- `--gitlab-user` - GitLab username
- `--gitlab-webhook-secret` - GitLab webhook secret
- `--gitlab-group-allowlist` - GitLab groups and permission pairs
### v0.41.0+
- `--gh-team-allowlist` - GitHub teams and permission pairs
- `--gh-token-file` - GitHub token loaded from file
### v0.42.0+
- `--executable-name` - Comment command trigger executable name
- `--vcs-status-name` - Name for identifying Atlantis in PR status
### v0.43.0+
- `--stats-namespace` - Namespace for emitting stats/metrics
- `--slack-token` - API token for Slack notifications
### v0.44.0+
- `--ssl-cert-file` - SSL certificate file for HTTPS
- `--ssl-key-file` - SSL private key file for HTTPS
### v0.45.0+
- `--tfe-hostname` - Terraform Enterprise hostname
- `--tfe-token` - Terraform Cloud/Enterprise token
- `--tfe-local-execution-mode` - Enable local execution mode
### v0.46.0+
- `--use-tf-plugin-cache` - Enable/disable Terraform plugin cache
- `--webhook-http-headers` - Additional headers for HTTP webhooks
### v0.47.0+
- `--websocket-check-origin` - Only allow websockets from Atlantis web server
- `--write-git-creds` - Write .git-credentials file for private modules
### v0.48.0+
- `--locking-db-type` - Locking database type (boltdb|redis)
- `--redis-host` - Redis hostname
- `--redis-port` - Redis port
- `--redis-password` - Redis password
- `--redis-db` - Redis database number
- `--redis-tls-enabled` - Enable TLS connection to Redis
- `--redis-insecure-skip-verify` - Skip Redis certificate verification
## Repo-Level atlantis.yaml Features
### Core Features (v0.1.0+)
- `version` - Configuration version (required)
- `projects` - List of projects in the repo
- `workflows` - Custom workflows (restricted)
### v0.15.0+
- `automerge` - Automatically merge PR when all plans applied
- `delete_source_branch_on_merge` - Delete source branch on merge
### v0.17.0+
- `parallel_plan` - Run plans in parallel
- `parallel_apply` - Run applies in parallel
- `abort_on_execution_order_fail` - Abort on execution order failures
### v0.18.0+
- `autodiscover` - Configure autodiscovery mode and ignore paths
### v0.19.0+
- `allowed_regexp_prefixes` - Allowed regex prefixes for regex commands
## Project-Level Features
### Core Features (v0.1.0+)
- `name` - Project name
- `dir` - Project directory
- `workspace` - Terraform workspace
- `terraform_version` - Specific Terraform version
### v0.17.0+
- `execution_order_group` - Execution order group index
- `delete_source_branch_on_merge` - Delete source branch on merge
- `repo_locking` - Repository locking (deprecated)
- `repo_locks` - Repository locks configuration
- `custom_policy_check` - Enable custom policy check tools
- `autoplan` - Custom autoplan configuration
- `plan_requirements` - Requirements for plan command (restricted)
- `apply_requirements` - Requirements for apply command (restricted)
- `import_requirements` - Requirements for import command (restricted)
- `silence_pr_comments` - Silence PR comments for specific stages
- `workflow` - Custom workflow (restricted)
### v0.20.0+
- `branch` - Regex matching projects by base branch
- `depends_on` - Project dependencies
### v0.25.0+
- `terraform_distribution` - Terraform distribution (terraform/opentofu)
## Autoplan Configuration
### Core Features (v0.1.0+)
- `enabled` - Whether autoplanning is enabled
- `when_modified` - File patterns that trigger autoplanning
## RepoLocks Configuration
### v0.17.0+
- `mode` - Repository lock mode (disabled|on_plan|on_apply)
## Notes
1. **Version Accuracy**: This analysis is based on the changelog, documentation, and code analysis. Some features may have been introduced in different versions than documented due to the changelog not being updated consistently.
2. **Restricted Features**: Some features are marked as "restricted" and require server-side configuration to enable.
3. **Deprecated Features**: Some features have been deprecated in favor of newer alternatives (e.g., `--repo-whitelist``--repo-allowlist`).
4. **Missing Versions**: For some features, the exact introduction version could not be determined from the available documentation and changelog. These are marked with approximate version ranges.
5. **Recent Features**: Features introduced after v0.23.0 may not be fully documented in the changelog as noted in the changelog header.
## Recommendations
1. **Update Documentation**: The documentation should be updated to include version information for each feature.
2. **Enhance Changelog**: The changelog should be maintained more consistently to track feature introductions.
3. **Version Tags**: Consider adding version tags to documentation sections to indicate when features were introduced.
4. **Migration Guides**: Provide migration guides for deprecated features and breaking changes.

View File

@@ -22,8 +22,8 @@ more details.
**Notes:**
* By default, repo root `atlantis.yaml` file is used.
* You can change this behaviour by setting [Server Side Repo Config](server-side-repo-config.md)
- By default, repo root `atlantis.yaml` file is used.
- You can change this behaviour by setting [Server Side Repo Config](server-side-repo-config.md)
::: danger DANGER
Atlantis uses the `atlantis.yaml` version from the pull request, similar to other
@@ -53,40 +53,40 @@ manually configured project, the manually configured project will take precedenc
## Example Using All Keys
```yaml
version: 3
automerge: true
autodiscover:
version: 3 <Badge text="v0.1.0+" type="info"/>
automerge: true <Badge text="v0.15.0+" type="info"/>
autodiscover: <Badge text="v0.18.0+" type="info"/>
mode: auto
ignore_paths:
- some/path
delete_source_branch_on_merge: true
parallel_plan: true
parallel_apply: true
abort_on_execution_order_fail: true
delete_source_branch_on_merge: true <Badge text="v0.15.0+" type="info"/>
parallel_plan: true <Badge text="v0.17.0+" type="info"/>
parallel_apply: true <Badge text="v0.17.0+" type="info"/>
abort_on_execution_order_fail: true <Badge text="v0.17.0+" type="info"/>
projects:
- name: my-project-name
branch: /main/
dir: .
workspace: default
terraform_distribution: terraform
terraform_version: v0.11.0
delete_source_branch_on_merge: true
repo_locking: true # deprecated: use repo_locks instead
repo_locks:
- name: my-project-name <Badge text="v0.1.0+" type="info"/>
branch: /main/ <Badge text="v0.20.0+" type="info"/>
dir: . <Badge text="v0.1.0+" type="info"/>
workspace: default <Badge text="v0.1.0+" type="info"/>
terraform_distribution: terraform <Badge text="v0.25.0+" type="info"/>
terraform_version: v0.11.0 <Badge text="v0.1.0+" type="info"/>
delete_source_branch_on_merge: true <Badge text="v0.17.0+" type="info"/>
repo_locking: true # deprecated: use repo_locks instead <Badge text="v0.17.0+" type="info"/>
repo_locks: <Badge text="v0.17.0+" type="info"/>
mode: on_plan
custom_policy_check: false
autoplan:
custom_policy_check: false <Badge text="v0.17.0+" type="info"/>
autoplan: <Badge text="v0.1.0+" type="info"/>
when_modified: ["*.tf", "../modules/**/*.tf", ".terraform.lock.hcl"]
enabled: true
plan_requirements: [mergeable, approved, undiverged]
apply_requirements: [mergeable, approved, undiverged]
import_requirements: [mergeable, approved, undiverged]
silence_pr_comments: ["apply"]
execution_order_group: 1
depends_on:
plan_requirements: [mergeable, approved, undiverged] <Badge text="v0.17.0+" type="info"/>
apply_requirements: [mergeable, approved, undiverged] <Badge text="v0.17.0+" type="info"/>
import_requirements: [mergeable, approved, undiverged] <Badge text="v0.17.0+" type="info"/>
silence_pr_comments: ["apply"] <Badge text="v0.17.0+" type="info"/>
execution_order_group: 1 <Badge text="v0.17.0+" type="info"/>
depends_on: <Badge text="v0.20.0+" type="info"/>
- project-1
workflow: myworkflow
workflows:
workflow: myworkflow <Badge text="v0.17.0+" type="info"/>
workflows: <Badge text="v0.1.0+" type="info"/>
myworkflow:
plan:
steps:
@@ -102,7 +102,7 @@ workflows:
steps:
- run: echo hi
- apply
allowed_regexp_prefixes:
allowed_regexp_prefixes: <Badge text="v0.19.0+" type="info"/>
- dev/
- staging/
```
@@ -111,31 +111,31 @@ allowed_regexp_prefixes:
```yaml
projects:
- &template
name: template
dir: template
workflow: custom
autoplan:
enabled: true
when_modified:
- "./terraform/modules/**/*.tf"
- "**/*.tf"
- ".terraform.lock.hcl"
- &template
name: template
dir: template
workflow: custom
autoplan:
enabled: true
when_modified:
- "./terraform/modules/**/*.tf"
- "**/*.tf"
- ".terraform.lock.hcl"
- <<: *template
name: ue1-prod-titan
dir: ./terraform/titan
workspace: ue1-prod
- <<: *template
name: ue1-prod-titan
dir: ./terraform/titan
workspace: ue1-prod
- <<: *template
name: ue1-stage-titan
dir: ./terraform/titan
workspace: ue1-stage
- <<: *template
name: ue1-stage-titan
dir: ./terraform/titan
workspace: ue1-stage
- <<: *template
name: ue1-dev-titan
dir: ./terraform/titan
workspace: ue1-dev
- <<: *template
name: ue1-dev-titan
dir: ./terraform/titan
workspace: ue1-dev
```
## Auto generate projects
@@ -161,9 +161,9 @@ grep -P 'backend[\s]+"s3"' **/*.tf |
```yaml
version: 3
projects:
- dir: project1
autoplan:
enabled: false
- dir: project1
autoplan:
enabled: false
```
This will stop Atlantis automatically running plan when `project1/` is updated
@@ -207,27 +207,27 @@ If you want Atlantis to plan `project1/` whenever any `.tf` files under `module1
```yaml
version: 3
projects:
- dir: project1
autoplan:
when_modified: ["../modules/**/*.tf", "*.tf*", ".terraform.lock.hcl"]
- dir: project1
autoplan:
when_modified: ["../modules/**/*.tf", "*.tf*", ".terraform.lock.hcl"]
```
Note:
* `when_modified` uses the [`.dockerignore` syntax](https://docs.docker.com/engine/reference/builder/#dockerignore-file)
* The paths are relative to the project's directory.
* `when_modified` will be used by both automatic and manually run plans.
* `when_modified` will continue to work for manually run plans even when autoplan is disabled.
- `when_modified` uses the [`.dockerignore` syntax](https://docs.docker.com/engine/reference/builder/#dockerignore-file)
- The paths are relative to the project's directory.
- `when_modified` will be used by both automatic and manually run plans.
- `when_modified` will continue to work for manually run plans even when autoplan is disabled.
### Supporting Terraform Workspaces
```yaml
version: 3
projects:
- dir: project1
workspace: staging
- dir: project1
workspace: production
- dir: project1
workspace: staging
- dir: project1
workspace: production
```
With the above config, when Atlantis determines that the configuration for the `project1` dir has changed,
@@ -273,8 +273,8 @@ by the `--default-tf-version` flag, then set the `terraform_distribution` key:
```yaml
version: 3
projects:
- dir: project1
terraform_distribution: opentofu
- dir: project1
terraform_distribution: opentofu
```
Atlantis will automatically download and use this distribution. Valid values are `terraform` and `opentofu`.
@@ -287,8 +287,8 @@ If you'd like to use a different version of Terraform than what is in Atlantis'
```yaml
version: 3
projects:
- dir: project1
terraform_version: 0.10.0
- dir: project1
terraform_version: 0.10.0
```
Atlantis will automatically download and use this version.
@@ -300,11 +300,11 @@ In this example, we only want to require `apply` approvals for the `production`
```yaml
version: 3
projects:
- dir: staging
- dir: production
plan_requirements: [approved]
apply_requirements: [approved]
import_requirements: [approved]
- dir: staging
- dir: production
plan_requirements: [approved]
apply_requirements: [approved]
import_requirements: [approved]
```
:::warning
@@ -318,10 +318,10 @@ to be allowed to set this key. See [Server-Side Repo Config Use Cases](server-si
version: 3
abort_on_execution_order_fail: true
projects:
- dir: project1
execution_order_group: 2
- dir: project2
execution_order_group: 1
- dir: project1
execution_order_group: 2
- dir: project2
execution_order_group: 1
```
With this config above, Atlantis runs planning/applying for project2 first, then for project1.
@@ -341,29 +341,29 @@ The following configuration is an example of how to use execution order groups a
```yaml
version: 3
projects:
- name: development
dir: .
autoplan:
when_modified: ["*.tf", "vars/development.tfvars"]
execution_order_group: 1
workspace: development
workflow: infra
- name: staging
dir: .
autoplan:
when_modified: ["*.tf", "vars/staging.tfvars"]
depends_on: ["development"]
execution_order_group: 2
workspace: staging
workflow: infra
- name: production
dir: .
autoplan:
when_modified: ["*.tf", "vars/production.tfvars"]
depends_on: ["staging"]
execution_order_group: 3
workspace: production
workflow: infra
- name: development
dir: .
autoplan:
when_modified: ["*.tf", "vars/development.tfvars"]
execution_order_group: 1
workspace: development
workflow: infra
- name: staging
dir: .
autoplan:
when_modified: ["*.tf", "vars/staging.tfvars"]
depends_on: ["development"]
execution_order_group: 2
workspace: staging
workflow: infra
- name: production
dir: .
autoplan:
when_modified: ["*.tf", "vars/production.tfvars"]
depends_on: ["staging"]
execution_order_group: 3
workspace: production
workflow: infra
```
the `depends_on` feature will make sure that `production` is not applied before `staging` for example.
@@ -379,7 +379,7 @@ If there's one or more projects in the dependency list which is not in applied s
```yaml
autodiscover:
mode: "auto"
mode: "auto"
```
The above is the default configuration for `autodiscover.mode`. When `autodiscover.mode` is auto,
@@ -387,7 +387,7 @@ projects will be discovered only if the repo has no `projects` configured.
```yaml
autodiscover:
mode: "disabled"
mode: "disabled"
```
With the config above, Atlantis will never try to discover projects, even when there are no
@@ -396,7 +396,7 @@ See [Dynamic Repo Config Generation](pre-workflow-hooks.md#dynamic-repo-config-g
```yaml
autodiscover:
mode: "enabled"
mode: "enabled"
```
With the config above, Atlantis will unconditionally try to discover projects based on modified_files,
@@ -409,9 +409,9 @@ it's still desirable for Atlantis to plan/apply for projects not enumerated in t
```yaml
autodiscover:
mode: "enabled"
ignore_paths:
- dir/*
mode: "enabled"
ignore_paths:
- dir/*
```
Autodiscover can also be configured to skip over directories that match a path glob (as defined [here](https://pkg.go.dev/github.com/bmatcuk/doublestar/v4))
@@ -434,13 +434,13 @@ allowed_regexp_prefixes:
```
| Key | Type | Default | Required | Description |
|-------------------------------|--------------------------------------------------------|---------|----------|------------------------------------------------------------------------------------------------------------------------------------|
| ----------------------------- | ------------------------------------------------------ | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| version | int | none | **yes** | This key is required and must be set to `3`. |
| automerge | bool | `false` | no | Automatically merges pull request when all plans are applied. |
| delete_source_branch_on_merge | bool | `false` | no | Automatically deletes the source branch on merge. |
| projects | array[[Project](repo-level-atlantis-yaml.md#project)] | `[]` | no | Lists the projects in this repo. |
| workflows<br />*(restricted)* | map[string: [Workflow](custom-workflows.md#reference)] | `{}` | no | Custom workflows. |
| allowed_regexp_prefixes | array\[string\] | `[]` | no | Lists the allowed regexp prefixes to use when the [`--enable-regexp-cmd`](server-configuration.md#enable-regexp-cmd) flag is used. |
| workflows<br />_(restricted)_ | map[string: [Workflow](custom-workflows.md#reference)] | `{}` | no | Custom workflows. |
| allowed_regexp_prefixes | array\[string\] | `[]` | no | Lists the allowed regexp prefixes to use when the [`--enable-regexp-cmd`](server-configuration.md#enable-regexp-cmd) flag is used. |
### Project
@@ -453,7 +453,7 @@ execution_order_group: 0
delete_source_branch_on_merge: false
repo_locking: true # deprecated: use repo_locks instead
repo_locks:
mode: on_plan
mode: on_plan
custom_policy_check: false
autoplan:
terraform_version: 0.11.0
@@ -464,24 +464,24 @@ silence_pr_comments: ["apply"]
workflow: myworkflow
```
| Key | Type | Default | Required | Description |
|-----------------------------------------|-------------------------|-----------------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| name | string | none | maybe | Required if there is more than one project with the same `dir` and `workspace`. This project name can be used with the `-p` flag. |
| branch | string | none | no | Regex matching projects by the base branch of pull request (the branch the pull request is getting merged into). Only projects that match the PR's branch will be considered. By default, all branches are matched. |
| dir | string | none | **yes** | The directory of this project relative to the repo root. For example if the project was under `./project1` then use `project1`. Use `.` to indicate the repo root. |
| workspace | string | `"default"` | no | The [Terraform workspace](https://developer.hashicorp.com/terraform/language/state/workspaces) for this project. Atlantis will switch to this workplace when planning/applying and will create it if it doesn't exist. |
| execution_order_group | int | `0` | no | Index of execution order group. Projects will be sort by this field before planning/applying. |
| delete_source_branch_on_merge | bool | `false` | no | Automatically deletes the source branch on merge. |
| repo_locking | bool | `true` | no | (deprecated) Get a repository lock in this project when plan. |
| repo_locks | [RepoLocks](#repolocks) | `mode: on_plan` | no | Get a repository lock in this project on plan or apply. See [RepoLocks](#repolocks) for more details. |
| custom_policy_check | bool | `false` | no | Enable using policy check tools other than Conftest |
| Key | Type | Default | Required | Description |
| --------------------------------------- | ----------------------- | --------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name | string | none | maybe | Required if there is more than one project with the same `dir` and `workspace`. This project name can be used with the `-p` flag. |
| branch | string | none | no | Regex matching projects by the base branch of pull request (the branch the pull request is getting merged into). Only projects that match the PR's branch will be considered. By default, all branches are matched. |
| dir | string | none | **yes** | The directory of this project relative to the repo root. For example if the project was under `./project1` then use `project1`. Use `.` to indicate the repo root. |
| workspace | string | `"default"` | no | The [Terraform workspace](https://developer.hashicorp.com/terraform/language/state/workspaces) for this project. Atlantis will switch to this workplace when planning/applying and will create it if it doesn't exist. |
| execution_order_group | int | `0` | no | Index of execution order group. Projects will be sort by this field before planning/applying. |
| delete_source_branch_on_merge | bool | `false` | no | Automatically deletes the source branch on merge. |
| repo_locking | bool | `true` | no | (deprecated) Get a repository lock in this project when plan. |
| repo_locks | [RepoLocks](#repolocks) | `mode: on_plan` | no | Get a repository lock in this project on plan or apply. See [RepoLocks](#repolocks) for more details. |
| custom_policy_check | bool | `false` | no | Enable using policy check tools other than Conftest |
| autoplan | [Autoplan](#autoplan) | none | no | A custom autoplan configuration. If not specified, will use the autoplan config. See [Autoplanning](autoplanning.md). |
| terraform_version | string | none | no | A specific Terraform version to use when running commands for this project. Must be [Semver compatible](https://semver.org/), ex. `v0.11.0`, `0.12.0-beta1`. |
| plan_requirements<br />*(restricted)* | array\[string\] | none | no | Requirements that must be satisfied before `atlantis plan` can be run. Currently the only supported requirements are `approved`, `mergeable`, and `undiverged`. See [Command Requirements](command-requirements.md) for more details. |
| apply_requirements<br />*(restricted)* | array\[string\] | none | no | Requirements that must be satisfied before `atlantis apply` can be run. Currently the only supported requirements are `approved`, `mergeable`, and `undiverged`. See [Command Requirements](command-requirements.md) for more details. |
| import_requirements<br />*(restricted)* | array\[string\] | none | no | Requirements that must be satisfied before `atlantis import` can be run. Currently the only supported requirements are `approved`, `mergeable`, and `undiverged`. See [Command Requirements](command-requirements.md) for more details. |
| terraform_version | string | none | no | A specific Terraform version to use when running commands for this project. Must be [Semver compatible](https://semver.org/), ex. `v0.11.0`, `0.12.0-beta1`. |
| plan_requirements<br />_(restricted)_ | array\[string\] | none | no | Requirements that must be satisfied before `atlantis plan` can be run. Currently the only supported requirements are `approved`, `mergeable`, and `undiverged`. See [Command Requirements](command-requirements.md) for more details. |
| apply_requirements<br />_(restricted)_ | array\[string\] | none | no | Requirements that must be satisfied before `atlantis apply` can be run. Currently the only supported requirements are `approved`, `mergeable`, and `undiverged`. See [Command Requirements](command-requirements.md) for more details. |
| import_requirements<br />_(restricted)_ | array\[string\] | none | no | Requirements that must be satisfied before `atlantis import` can be run. Currently the only supported requirements are `approved`, `mergeable`, and `undiverged`. See [Command Requirements](command-requirements.md) for more details. |
| silence_pr_comments | array\[string\] | none | no | Silence PR comments from defined stages while preserving PR status checks. Supported values are: `plan`, `apply`. |
| workflow <br />*(restricted)* | string | none | no | A custom workflow. If not specified, Atlantis will use its default workflow. |
| workflow <br />_(restricted)_ | string | none | no | A custom workflow. If not specified, Atlantis will use its default workflow. |
::: tip
A project represents a Terraform state. Typically, there is one state per directory and workspace however it's possible to
@@ -496,10 +496,10 @@ enabled: true
when_modified: ["*.tf", "terragrunt.hcl", ".terraform.lock.hcl"]
```
| Key | Type | Default | Required | Description |
|-----------------------|-----------------|----------------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| enabled | boolean | `true` | no | Whether autoplanning is enabled for this project. |
| when_modified | array\[string\] | `["**/*.tf*"]` | no | Uses [.dockerignore](https://docs.docker.com/engine/reference/builder/#dockerignore-file) syntax. If any modified file in the pull request matches, this project will be planned. See [Autoplanning](autoplanning.md). Paths are relative to the project's dir. |
| Key | Type | Default | Required | Description |
| ------------- | --------------- | -------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| enabled | boolean | `true` | no | Whether autoplanning is enabled for this project. |
| when_modified | array\[string\] | `["**/*.tf*"]` | no | Uses [.dockerignore](https://docs.docker.com/engine/reference/builder/#dockerignore-file) syntax. If any modified file in the pull request matches, this project will be planned. See [Autoplanning](autoplanning.md). Paths are relative to the project's dir. |
### RepoLocks
@@ -508,5 +508,5 @@ mode: on_apply
```
| Key | Type | Default | Required | Description |
|------|--------|-----------|----------|---------------------------------------------------------------------------------------------------------------------------------------|
| ---- | ------ | --------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| mode | `Mode` | `on_plan` | no | Whether or not repository locks are enabled for this project on plan or apply. Valid values are `disabled`, `on_plan` and `on_apply`. |

File diff suppressed because it is too large Load Diff