Compare commits
6 Commits
14c1a11417
...
v0.12.2
Author | SHA1 | Date | |
---|---|---|---|
4f33464489
|
|||
2c787bd532 | |||
feacbf5a3f | |||
d6160c596b
|
|||
9799416352
|
|||
8095c2a513
|
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@ -37,7 +37,7 @@ jobs:
|
|||||||
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | \
|
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | \
|
||||||
sh -s -- -b /usr/local/bin v0.64.0
|
sh -s -- -b /usr/local/bin v0.64.0
|
||||||
- name: Run GoReleaser
|
- name: Run GoReleaser
|
||||||
uses: goreleaser/goreleaser-action@v4.1.0
|
uses: goreleaser/goreleaser-action@v4.2.0
|
||||||
with:
|
with:
|
||||||
version: latest
|
version: latest
|
||||||
args: release --rm-dist
|
args: release --rm-dist
|
||||||
|
2
Makefile
2
Makefile
@ -3,7 +3,7 @@ GOFMT_FILES?=$$(find . -name '*.go' |grep -v vendor)
|
|||||||
|
|
||||||
GOFMT ?= gofmt -s
|
GOFMT ?= gofmt -s
|
||||||
|
|
||||||
VERSION = 0.11.2
|
VERSION = 0.12.2
|
||||||
|
|
||||||
test: fmt-check
|
test: fmt-check
|
||||||
go test -i $(TEST) || exit 1
|
go test -i $(TEST) || exit 1
|
||||||
|
@ -17,7 +17,7 @@ terraform {
|
|||||||
required_providers {
|
required_providers {
|
||||||
gitea = {
|
gitea = {
|
||||||
source = "Lerentis/gitea"
|
source = "Lerentis/gitea"
|
||||||
version = "0.11.2"
|
version = "0.12.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ terraform {
|
|||||||
required_providers {
|
required_providers {
|
||||||
gitea = {
|
gitea = {
|
||||||
source = "Lerentis/gitea"
|
source = "Lerentis/gitea"
|
||||||
version = "0.11.1"
|
version = "0.12.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,15 @@ Every key needs a unique name and unique key, i.e. no key can be added twice to
|
|||||||
## Example Usage
|
## Example Usage
|
||||||
|
|
||||||
```terraform
|
```terraform
|
||||||
|
terraform {
|
||||||
|
required_providers {
|
||||||
|
tls = {
|
||||||
|
source = "hashicorp/tls"
|
||||||
|
version = "4.0.4"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
resource "tls_private_key" "example" {
|
resource "tls_private_key" "example" {
|
||||||
type = "RSA"
|
type = "RSA"
|
||||||
rsa_bits = 4096
|
rsa_bits = 4096
|
||||||
|
@ -101,7 +101,25 @@ resource "gitea_token" "test_token" {
|
|||||||
name = "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" {
|
output "token" {
|
||||||
value = resource.gitea_token.test_token.token
|
value = resource.gitea_token.test_token.token
|
||||||
sensitive = true
|
sensitive = true
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ terraform {
|
|||||||
required_providers {
|
required_providers {
|
||||||
gitea = {
|
gitea = {
|
||||||
source = "terraform.local/lerentis/gitea"
|
source = "terraform.local/lerentis/gitea"
|
||||||
version = "0.11.2"
|
version = "0.12.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ terraform {
|
|||||||
required_providers {
|
required_providers {
|
||||||
gitea = {
|
gitea = {
|
||||||
source = "Lerentis/gitea"
|
source = "Lerentis/gitea"
|
||||||
version = "0.11.1"
|
version = "0.12.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
25
examples/resources/gitea_repository_key/resource.tf
Normal file
25
examples/resources/gitea_repository_key/resource.tf
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
terraform {
|
||||||
|
required_providers {
|
||||||
|
tls = {
|
||||||
|
source = "hashicorp/tls"
|
||||||
|
version = "4.0.4"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "tls_private_key" "example" {
|
||||||
|
type = "RSA"
|
||||||
|
rsa_bits = 4096
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "gitea_repository" "example" {
|
||||||
|
name = "example"
|
||||||
|
private = true
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "gitea_repository_key" "example" {
|
||||||
|
repository = gitea_repository.example.id
|
||||||
|
title = "Example Deploy Key"
|
||||||
|
read_only = true
|
||||||
|
key = tls_private_key.example.public_key_openssh
|
||||||
|
}
|
@ -116,7 +116,7 @@ func dataSourceGiteaRepoRead(d *schema.ResourceData, meta interface{}) error {
|
|||||||
}
|
}
|
||||||
username := strings.ToLower(usernameData.(string))
|
username := strings.ToLower(usernameData.(string))
|
||||||
|
|
||||||
nameData, nameOk := d.GetOk("username")
|
nameData, nameOk := d.GetOk("name")
|
||||||
if !nameOk {
|
if !nameOk {
|
||||||
return fmt.Errorf("name of repo must be passed")
|
return fmt.Errorf("name of repo must be passed")
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,8 @@ func resourceOrgRead(d *schema.ResourceData, meta interface{}) (err error) {
|
|||||||
org, err = searchOrgByClientId(client, id)
|
org, err = searchOrgByClientId(client, id)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
d.SetId("")
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
err = setOrgResourceData(org, d)
|
err = setOrgResourceData(org, d)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package gitea
|
package gitea
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
@ -48,6 +49,34 @@ const (
|
|||||||
migrationLFSEndpoint string = "migration_lfs_endpoint"
|
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) {
|
func resourceRepoRead(d *schema.ResourceData, meta interface{}) (err error) {
|
||||||
client := meta.(*gitea.Client)
|
client := meta.(*gitea.Client)
|
||||||
|
|
||||||
@ -78,6 +107,20 @@ func resourceRepoCreate(d *schema.ResourceData, meta interface{}) (err error) {
|
|||||||
client := meta.(*gitea.Client)
|
client := meta.(*gitea.Client)
|
||||||
|
|
||||||
var repo *gitea.Repository
|
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) {
|
if (d.Get(repoMirror)).(bool) {
|
||||||
|
|
||||||
@ -134,7 +177,11 @@ func resourceRepoCreate(d *schema.ResourceData, meta interface{}) (err error) {
|
|||||||
TrustModel: "default",
|
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 {
|
if err != nil {
|
||||||
|
@ -24,11 +24,11 @@ func resourceRepoKeyIdParts(d *schema.ResourceData) (bool, int64, int64, error)
|
|||||||
|
|
||||||
repoId, err := strconv.ParseInt(parts[0], 10, 64)
|
repoId, err := strconv.ParseInt(parts[0], 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return true, 0, 0, err
|
return false, 0, 0, err
|
||||||
}
|
}
|
||||||
keyId, err := strconv.ParseInt(parts[1], 10, 64)
|
keyId, err := strconv.ParseInt(parts[1], 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return true, 0, 0, err
|
return false, 0, 0, err
|
||||||
}
|
}
|
||||||
return true, repoId, keyId, err
|
return true, repoId, keyId, err
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user