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.
:::tip Prerequisites
- Set
api-secret
as part of the Server Configuration - Pass
X-Atlantis-Token
with the same secret in the request header :::
Execute 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"
}