Files
atlantis/runatlantis.io/docs/requirements.md
Martijn van der Kleijn 722c4a9372 feat: Add Gitea support (#4229)
* 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>
2024-03-18 14:21:45 +00:00

2.8 KiB
Raw Blame History

Requirements

Atlantis works with most Git hosts and Terraform setups. Read on to confirm it works with yours.

toc

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 wellas 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