* Add initial Gitea client structure * Add various missing config flags * initial gitea support added * Fix some post-merge issues * Replace HidePrevCommandComments by version from @florianbeisel * Update mocks * feat: add Webhook Signature Verification This changes adds support for Gitea Webhook Signatures by wrapping the function from the Gitea SDK and calling it from `handleGiteaPost()`. * fix: use release version in go.mod 1.22 as in the previous go.mod is a development version. When referencing a minimum release version the correct format is 1.22.0 * Set default Gitea url to cloud.gitea.com * Fix and Add tests for Gitea * Fix missing copyright header * Changed comment to reflect no max comment length Apparently there's no max comment length in Gitea at this point in time. * Implement GetCloneURL() * Decode Base64 before passing on downloaded file content * Enable Gitea client as API Client * Remove unneded comments * Remove old redundant file * fix: invalid version number in go.mod * fix: remove unnecessary type conversions * fix: removed unused function * fix: remove unnecessary type conversion of decodedData * fix: fixes some tests * Correct gitea.com URL * Add Gitea to website docs * fix: TestPost_UnsupportedGiteaEvent * revert version downgrades * docs: add Gitea documentation to Guide section * docs: fix copy paste mistake * Update cmd/server_test.go Co-authored-by: nitrocode <7775707+nitrocode@users.noreply.github.com> * Clarify usage msg for --gitea-base-url * Apply suggestions from code review Co-authored-by: nitrocode <7775707+nitrocode@users.noreply.github.com> * Turn ebreak number into const with comments * Add --gitea-page-size server argument Defaults to 30 based on https://docs.gitea.com/1.18/advanced/config-cheat-sheet#api-api * Fix broken test * Fix event parser and comment parser * Add missing app permission to docs * Make Gitea client conform to updated interface * Update server/events/vcs/gitea/client.go Co-authored-by: Simon Heather <32168619+X-Guardian@users.noreply.github.com> * Remove no longer needed logger * Add extra logging statements for Gitea client * Add debug statements --------- Co-authored-by: Florian Beisel <florian@pacey.me> Co-authored-by: Florian Beisel <florian@beisel.it> Co-authored-by: PePe Amengual <jose.amengual@gmail.com> Co-authored-by: nitrocode <7775707+nitrocode@users.noreply.github.com> Co-authored-by: Rui Chen <rui@chenrui.dev> Co-authored-by: Simon Heather <32168619+X-Guardian@users.noreply.github.com>
2.8 KiB
Requirements
Atlantis works with most Git hosts and Terraform setups. Read on to confirm it works with yours.
Git Host
Atlantis integrates with the following Git hosts:
- GitHub (public, private or enterprise)
- GitLab (public, private or enterprise)
- Gitea (public, private and compatible forks like Forgejo)
- Bitbucket Cloud aka bitbucket.org (public or private)
- Bitbucket Server aka Stash
- Azure DevOps
Terraform State
Atlantis supports all backend types except for local state. We don't support local state because Atlantis does not have permanent storage and it doesn't commit the new statefile back to version control.
:::tip If you're looking for an easy remote state solution, check out free remote state storage from Terraform Cloud. This is fully supported by Atlantis. :::
Repository Structure
Atlantis supports any Terraform repository structure, for example:
Single Terraform Project At Repo Root
.
├── main.tf
└── ...
Multiple Project Folders
.
├── project1
│ ├── main.tf
| └── ...
└── project2
├── main.tf
└── ...
Modules
.
├── project1
│ ├── main.tf
| └── ...
└── modules
└── module1
├── main.tf
└── ...
With modules, if you want project1 automatically planned when module1 is modified
you need to create an atlantis.yaml file. See atlantis.yaml Use Cases for more details.
Terraform Workspaces
See Terraform's docs if you are unfamiliar with workspaces.
If you're using Terraform >= 0.9.0, Atlantis supports workspaces through an
atlantis.yaml file that tells Atlantis the names of your workspaces
(see atlantis.yaml Use Cases for more details)
.tfvars Files
.
├── production.tfvars
│── staging.tfvars
└── main.tf
For Atlantis to be able to plan automatically with .tfvars files, you need to create
an atlantis.yaml file to tell it to use -var-file={YOUR_FILE}.
See atlantis.yaml Use Cases for more details.
Multiple Repos
Atlantis supports multiple repos as well–as long as there is a webhook configured for each repo.
Terraform Versions
Atlantis supports all Terraform versions (including 0.12) and can be configured to use different versions for different repositories/projects. See Terraform Versions.
Next Steps
- If your Terraform setup meets the Atlantis requirements, continue the installation guide and set up your Git Host Access Credentials