fixed org vanashing

fixed regression of  v0.11.1
This commit is contained in:
Tobias Trabelsi 2023-01-28 22:49:54 +01:00
parent 8095c2a513
commit 9799416352
No known key found for this signature in database
GPG key ID: FF0C2839718CAF2E
8 changed files with 74 additions and 8 deletions

View file

@ -3,7 +3,7 @@ GOFMT_FILES?=$$(find . -name '*.go' |grep -v vendor)
GOFMT ?= gofmt -s
VERSION = 0.12.0
VERSION = 0.12.1
test: fmt-check
go test -i $(TEST) || exit 1

View file

@ -17,7 +17,7 @@ terraform {
required_providers {
gitea = {
source = "Lerentis/gitea"
version = "0.12.0"
version = "0.12.1"
}
}
}

View file

@ -17,7 +17,7 @@ terraform {
required_providers {
gitea = {
source = "Lerentis/gitea"
version = "0.11.1"
version = "0.11.2"
}
}
}

View file

@ -101,6 +101,24 @@ resource "gitea_token" "test_token" {
name = "test-token"
}
resource "gitea_repository" "test_existing_user" {
username = "testuser2"
name = "testExistingUser"
private = true
issue_labels = "Default"
license = "MIT"
gitignores = "Go"
}
//resource "gitea_repository" "test_bs_user" {
// username = "manualTest"
// name = "testBullshitUser"
// private = true
// issue_labels = "Default"
// license = "MIT"
// gitignores = "Go"
//}
output "token" {
value = resource.gitea_token.test_token.token
sensitive = true

View file

@ -2,7 +2,7 @@ terraform {
required_providers {
gitea = {
source = "terraform.local/lerentis/gitea"
version = "0.12.0"
version = "0.12.1"
}
}
}

View file

@ -2,7 +2,7 @@ terraform {
required_providers {
gitea = {
source = "Lerentis/gitea"
version = "0.11.1"
version = "0.11.2"
}
}
}

View file

@ -58,7 +58,8 @@ func resourceOrgRead(d *schema.ResourceData, meta interface{}) (err error) {
org, err = searchOrgByClientId(client, id)
if err != nil {
return err
d.SetId("")
return nil
}
err = setOrgResourceData(org, d)

View file

@ -1,6 +1,7 @@
package gitea
import (
"errors"
"fmt"
"strconv"
@ -48,6 +49,34 @@ const (
migrationLFSEndpoint string = "migration_lfs_endpoint"
)
func searchUserByName(c *gitea.Client, name string) (res *gitea.User, err error) {
page := 1
for {
users, _, err := c.AdminListUsers(gitea.AdminListUsersOptions{
ListOptions: gitea.ListOptions{
Page: page,
PageSize: 50,
},
})
if err != nil {
return nil, err
}
if len(users) == 0 {
return nil, fmt.Errorf("User with name %s could not be found", name)
}
for _, user := range users {
if user.UserName == name {
return user, nil
}
}
page += 1
}
}
func resourceRepoRead(d *schema.ResourceData, meta interface{}) (err error) {
client := meta.(*gitea.Client)
@ -78,6 +107,20 @@ func resourceRepoCreate(d *schema.ResourceData, meta interface{}) (err error) {
client := meta.(*gitea.Client)
var repo *gitea.Repository
var resp *gitea.Response
var orgRepo bool
_, resp, err = client.GetOrg(d.Get(repoOwner).(string))
if resp.StatusCode == 404 {
_, err := searchUserByName(client, d.Get(repoOwner).(string))
if err != nil {
return errors.New(fmt.Sprintf("Creation of repository cound not proceed as owner %s is not present in gitea", d.Get(repoOwner).(string)))
}
orgRepo = false
} else {
orgRepo = true
}
if (d.Get(repoMirror)).(bool) {
@ -134,7 +177,11 @@ func resourceRepoCreate(d *schema.ResourceData, meta interface{}) (err error) {
TrustModel: "default",
}
repo, _, err = client.CreateOrgRepo(d.Get(repoOwner).(string), opts)
if orgRepo {
repo, _, err = client.CreateOrgRepo(d.Get(repoOwner).(string), opts)
} else {
repo, _, err = client.AdminCreateRepo(d.Get(repoOwner).(string), opts)
}
}
if err != nil {