From a43267532a9cda2132d18368bff711f16d2ac909 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Sun, 9 Aug 2026 11:45:26 +1000 Subject: [PATCH] Import pre-existing Gitea branch protections Why: - tofu apply fails with "Branch protection already exist" because the nine repos protected in #60 already have live branch protection in Gitea that is absent from Terraform state, so Terraform tries to create rules that already exist and Gitea rejects them. - The pinned go-gitea/gitea provider 0.7.0 defines no importer for gitea_repository_branch_protection, so the existing rules cannot be adopted on that version. How: - Bump the gitea provider from 0.7.0 to 0.8.1, which adds an importer for gitea_repository_branch_protection (id format //). - Add import blocks adopting the nine existing branch protections into state instead of recreating them. --- modules/gitea_instance/imports.tf | 47 +++++++++++++++++++ .../modules/branch_protection/terraform.tf | 2 +- .../modules/deploy_key/terraform.tf | 2 +- .../modules/organisation/terraform.tf | 2 +- .../modules/repository/terraform.tf | 2 +- .../gitea_instance/modules/team/terraform.tf | 2 +- .../gitea_instance/modules/user/terraform.tf | 2 +- modules/gitea_instance/terraform.tf | 2 +- 8 files changed, 54 insertions(+), 7 deletions(-) diff --git a/modules/gitea_instance/imports.tf b/modules/gitea_instance/imports.tf index 0c6849c..9446369 100644 --- a/modules/gitea_instance/imports.tf +++ b/modules/gitea_instance/imports.tf @@ -203,3 +203,50 @@ import { id = "144" } +# Branch protections that already exist in Gitea but are not yet in state. +# Import id format is //. +import { + to = module.branch_protection["git.unkin.net/unkin/app-sudaporn-research-individual/master"].gitea_repository_branch_protection.this + id = "unkin/app-sudaporn-research-individual/master" +} + +import { + to = module.branch_protection["git.unkin.net/unkin/app-sudaporn-research-normalised/master"].gitea_repository_branch_protection.this + id = "unkin/app-sudaporn-research-normalised/master" +} + +import { + to = module.branch_protection["git.unkin.net/unkin/benvin-utils/main"].gitea_repository_branch_protection.this + id = "unkin/benvin-utils/main" +} + +import { + to = module.branch_protection["git.unkin.net/unkin/container-devcompute/main"].gitea_repository_branch_protection.this + id = "unkin/container-devcompute/main" +} + +import { + to = module.branch_protection["git.unkin.net/unkin/docker-template/master"].gitea_repository_branch_protection.this + id = "unkin/docker-template/master" +} + +import { + to = module.branch_protection["git.unkin.net/unkin/initbuilder/main"].gitea_repository_branch_protection.this + id = "unkin/initbuilder/main" +} + +import { + to = module.branch_protection["git.unkin.net/unkin/puppetapi/master"].gitea_repository_branch_protection.this + id = "unkin/puppetapi/master" +} + +import { + to = module.branch_protection["git.unkin.net/unkin/rpmbuild-internal-ca-certificates/master"].gitea_repository_branch_protection.this + id = "unkin/rpmbuild-internal-ca-certificates/master" +} + +import { + to = module.branch_protection["git.unkin.net/unkin/streamstack/main"].gitea_repository_branch_protection.this + id = "unkin/streamstack/main" +} + diff --git a/modules/gitea_instance/modules/branch_protection/terraform.tf b/modules/gitea_instance/modules/branch_protection/terraform.tf index 0d5ef69..19630e2 100644 --- a/modules/gitea_instance/modules/branch_protection/terraform.tf +++ b/modules/gitea_instance/modules/branch_protection/terraform.tf @@ -3,7 +3,7 @@ terraform { required_providers { gitea = { source = "go-gitea/gitea" - version = "0.7.0" + version = "0.8.1" } } } diff --git a/modules/gitea_instance/modules/deploy_key/terraform.tf b/modules/gitea_instance/modules/deploy_key/terraform.tf index 0d5ef69..19630e2 100644 --- a/modules/gitea_instance/modules/deploy_key/terraform.tf +++ b/modules/gitea_instance/modules/deploy_key/terraform.tf @@ -3,7 +3,7 @@ terraform { required_providers { gitea = { source = "go-gitea/gitea" - version = "0.7.0" + version = "0.8.1" } } } diff --git a/modules/gitea_instance/modules/organisation/terraform.tf b/modules/gitea_instance/modules/organisation/terraform.tf index 0d5ef69..19630e2 100644 --- a/modules/gitea_instance/modules/organisation/terraform.tf +++ b/modules/gitea_instance/modules/organisation/terraform.tf @@ -3,7 +3,7 @@ terraform { required_providers { gitea = { source = "go-gitea/gitea" - version = "0.7.0" + version = "0.8.1" } } } diff --git a/modules/gitea_instance/modules/repository/terraform.tf b/modules/gitea_instance/modules/repository/terraform.tf index 0d5ef69..19630e2 100644 --- a/modules/gitea_instance/modules/repository/terraform.tf +++ b/modules/gitea_instance/modules/repository/terraform.tf @@ -3,7 +3,7 @@ terraform { required_providers { gitea = { source = "go-gitea/gitea" - version = "0.7.0" + version = "0.8.1" } } } diff --git a/modules/gitea_instance/modules/team/terraform.tf b/modules/gitea_instance/modules/team/terraform.tf index 0d5ef69..19630e2 100644 --- a/modules/gitea_instance/modules/team/terraform.tf +++ b/modules/gitea_instance/modules/team/terraform.tf @@ -3,7 +3,7 @@ terraform { required_providers { gitea = { source = "go-gitea/gitea" - version = "0.7.0" + version = "0.8.1" } } } diff --git a/modules/gitea_instance/modules/user/terraform.tf b/modules/gitea_instance/modules/user/terraform.tf index d593d08..cb5bfd9 100644 --- a/modules/gitea_instance/modules/user/terraform.tf +++ b/modules/gitea_instance/modules/user/terraform.tf @@ -3,7 +3,7 @@ terraform { required_providers { gitea = { source = "go-gitea/gitea" - version = "0.7.0" + version = "0.8.1" } random = { source = "hashicorp/random" diff --git a/modules/gitea_instance/terraform.tf b/modules/gitea_instance/terraform.tf index b86e08a..0cf3773 100644 --- a/modules/gitea_instance/terraform.tf +++ b/modules/gitea_instance/terraform.tf @@ -3,7 +3,7 @@ terraform { required_providers { gitea = { source = "go-gitea/gitea" - version = "0.7.0" + version = "0.8.1" } woodpecker = { source = "Kichiyaki/woodpecker"