In April 2024, the Core Atlantis Team launched an anonymous survey to better understand our community's needs and help prioritize our roadmap.
If you're an Atlantis user, please take 5 minutes to fill it out: Survey Link
In April 2024, the Core Atlantis Team launched an anonymous survey to better understand our community's needs and help prioritize our roadmap.
If you're an Atlantis user, please take 5 minutes to fill it out: Survey Link
Aside from interacting via pull request comments, Atlantis could respond to a limited number of API endpoints.
The API endpoints in this section are disabled by default, since these API endpoints could change the infrastructure directly. To enable the API endpoints, api-secret
should be configured.
Prerequisites
api-secret
as part of the Server ConfigurationX-Atlantis-Token
with the same secret in the request headerExecute atlantis plan on the specified repository.
Name | Type | Required | Description |
---|---|---|---|
Repository | string | Yes | Name of the Terraform repository |
Ref | string | Yes | Git reference, like a branch name |
Type | string | Yes | Type of the VCS provider (Github/Gitlab) |
Paths | Path | Yes | Paths to the projects to run the plan |
PR | int | No | Pull Request number |
Similar to the Options of atlantis plan
. Path specifies which directory/workspace within the repository to run the plan. At least one of Directory
or Workspace
should be specified.
Name | Type | Required | Description |
---|---|---|---|
Directory | string | No | Which directory to run plan in relative to root of repo |
Workspace | string | No | Terraform workspace of the plan. Use default if Terraform workspaces are unused. |
curl --request POST 'https://<ATLANTIS_HOST_NAME>/api/plan' \
--header 'X-Atlantis-Token: <ATLANTIS_API_SECRET>' \
--header 'Content-Type: application/json' \
--data-raw '{
"Repository": "repo-name",
"Ref": "main",
"Type": "Github",
"Paths": [{
"Directory": ".",
"Workspace": "default"
}],
"PR": 2
}'
{
"Error": null,
"Failure": "",
"ProjectResults": [
{
"Command": 1,
"RepoRelDir": ".",
"Workspace": "default",
"Error": null,
"Failure": "",
"PlanSuccess": {
"TerraformOutput": "<redacted>",
"LockURL": "<redacted>",
"RePlanCmd": "atlantis plan -d .",
"ApplyCmd": "atlantis apply -d .",
"HasDiverged": false
},
"PolicyCheckSuccess": null,
"ApplySuccess": "",
"VersionSuccess": "",
"ProjectName": ""
}
],
"PlansDeleted": false
}
Execute atlantis apply on the specified repository.
Name | Type | Required | Description |
---|---|---|---|
Repository | string | Yes | Name of the Terraform repository |
Ref | string | Yes | Git reference, like a branch name |
Type | string | Yes | Type of the VCS provider (Github/Gitlab) |
Paths | Path | Yes | Paths to the projects to run the apply |
PR | int | No | Pull Request number |
Similar to the Options of atlantis apply
. Path specifies which directory/workspace within the repository to run the apply. At least one of Directory
or Workspace
should be specified.
Name | Type | Required | Description |
---|---|---|---|
Directory | string | No | Which directory to run apply in relative to root of repo |
Workspace | string | No | Terraform workspace of the plan. Use default if Terraform workspaces are unused. |
curl --request POST 'https://<ATLANTIS_HOST_NAME>/api/apply' \
--header 'X-Atlantis-Token: <ATLANTIS_API_SECRET>' \
--header 'Content-Type: application/json' \
--data-raw '{
"Repository": "repo-name",
"Ref": "main",
"Type": "Github",
"Paths": [{
"Directory": ".",
"Workspace": "default"
}],
"PR": 2
}'
{
"Error": null,
"Failure": "",
"ProjectResults": [
{
"Command": 0,
"RepoRelDir": ".",
"Workspace": "default",
"Error": null,
"Failure": "",
"PlanSuccess": null,
"PolicyCheckSuccess": null,
"ApplySuccess": "<redacted>",
"VersionSuccess": "",
"ProjectName": ""
}
],
"PlansDeleted": false
}
The endpoints listed in this section are non-destructive and therefore don't require authentication nor special secret token.
Return the status of the Atlantis server.
curl --request GET 'https://<ATLANTIS_HOST_NAME>/status'
{
"shutting_down": false,
"in_progress_operations": 0,
"version": "0.22.3"
}
Serves as the health-check endpoint for a containerized Atlantis server.
curl --request GET 'https://<ATLANTIS_HOST_NAME>/healthz'
{
"status": "ok"
}