Compare commits
3 Commits
f3c0793a88
...
v0.9.0
Author | SHA1 | Date | |
---|---|---|---|
9c819ad4c2
|
|||
6d5439a00a
|
|||
6d0bd5906a
|
@ -17,7 +17,7 @@ terraform {
|
||||
required_providers {
|
||||
gitea = {
|
||||
source = "Lerentis/gitea"
|
||||
version = "0.8.0"
|
||||
version = "0.9.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,14 +3,44 @@
|
||||
page_title: "gitea_fork Resource - terraform-provider-gitea"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
gitea_fork manages repository fork
|
||||
gitea_fork manages repository fork to the current user or an organisation
|
||||
Forking a repository to a dedicated user is currently unsupported
|
||||
Creating a fork using this resource without an organisation will create the fork in the executors name
|
||||
---
|
||||
|
||||
# gitea_fork (Resource)
|
||||
|
||||
`gitea_fork` manages repository fork
|
||||
`gitea_fork` manages repository fork to the current user or an organisation
|
||||
Forking a repository to a dedicated user is currently unsupported
|
||||
Creating a fork using this resource without an organisation will create the fork in the executors name
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
resource "gitea_org" "org1" {
|
||||
name = "org1"
|
||||
}
|
||||
|
||||
resource "gitea_org" "org2" {
|
||||
name = "org2"
|
||||
}
|
||||
|
||||
resource "gitea_repository" "repo1_in_org1" {
|
||||
username = gitea_org.org1.name
|
||||
name = "repo1-in-org1"
|
||||
}
|
||||
|
||||
resource "gitea_fork" "user_fork_of_repo1_in_org1" {
|
||||
owner = gitea_org.org1.name
|
||||
repo = gitea_repository.repo1_in_org1.name
|
||||
}
|
||||
|
||||
resource "gitea_fork" "org2_fork_of_repo1_in_org1" {
|
||||
owner = gitea_org.org1.name
|
||||
repo = gitea_repository.repo1_in_org1.name
|
||||
organization = gitea_org.org2.name
|
||||
}
|
||||
```
|
||||
|
||||
<!-- schema generated by tfplugindocs -->
|
||||
## Schema
|
||||
|
@ -71,3 +71,27 @@ resource "gitea_git_hook" "org_repo_pre_receive" {
|
||||
repo = gitea_repository.org_repo.name
|
||||
content = file("${path.module}/pre-receive.sh")
|
||||
}
|
||||
|
||||
resource "gitea_org" "org1" {
|
||||
name = "org1"
|
||||
}
|
||||
|
||||
resource "gitea_org" "org2" {
|
||||
name = "org2"
|
||||
}
|
||||
|
||||
resource "gitea_repository" "repo1_in_org1" {
|
||||
username = gitea_org.org1.name
|
||||
name = "repo1-in-org1"
|
||||
}
|
||||
|
||||
resource "gitea_fork" "user_fork_of_repo1_in_org1" {
|
||||
owner = gitea_org.org1.name
|
||||
repo = gitea_repository.repo1_in_org1.name
|
||||
}
|
||||
|
||||
resource "gitea_fork" "org2_fork_of_repo1_in_org1" {
|
||||
owner = gitea_org.org1.name
|
||||
repo = gitea_repository.repo1_in_org1.name
|
||||
organization = gitea_org.org2.name
|
||||
}
|
@ -2,7 +2,7 @@ terraform {
|
||||
required_providers {
|
||||
gitea = {
|
||||
source = "terraform.local/lerentis/gitea"
|
||||
version = "0.8.0"
|
||||
version = "0.9.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ terraform {
|
||||
required_providers {
|
||||
gitea = {
|
||||
source = "Lerentis/gitea"
|
||||
version = "0.8.0"
|
||||
version = "0.9.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,16 +8,16 @@ resource "gitea_org" "org2" {
|
||||
|
||||
resource "gitea_repository" "repo1_in_org1" {
|
||||
username = gitea_org.org1.name
|
||||
name = "repo1-in-org1"
|
||||
name = "repo1-in-org1"
|
||||
}
|
||||
|
||||
resource "gitea_fork" "user_fork_of_repo1_in_org1" {
|
||||
owner = gitea_org.org1.name
|
||||
repo = gitea_repository.repo1_in_org1.name
|
||||
repo = gitea_repository.repo1_in_org1.name
|
||||
}
|
||||
|
||||
resource "gitea_fork" "org2_fork_of_repo1_in_org1" {
|
||||
owner = gitea_org.org1.name
|
||||
repo = gitea_repository.repo1_in_org1.name
|
||||
owner = gitea_org.org1.name
|
||||
repo = gitea_repository.repo1_in_org1.name
|
||||
organization = gitea_org.org2.name
|
||||
}
|
||||
|
@ -72,7 +72,7 @@ func Provider() *schema.Provider {
|
||||
},
|
||||
|
||||
ResourcesMap: map[string]*schema.Resource{
|
||||
"gitea_org": resourceGiteaOrg(),
|
||||
"gitea_org": resourceGiteaOrg(),
|
||||
// "gitea_team": resourceGiteaTeam(),
|
||||
// "gitea_repo": resourceGiteaRepo(),
|
||||
"gitea_user": resourceGiteaUser(),
|
||||
|
@ -3,14 +3,15 @@ package gitea
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
|
||||
"code.gitea.io/sdk/gitea"
|
||||
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
|
||||
)
|
||||
|
||||
const (
|
||||
forkOwner string = "owner"
|
||||
forkRepo string = "repo"
|
||||
forkOrganization string = "organization"
|
||||
forkOwner string = "owner"
|
||||
forkRepo string = "repo"
|
||||
forkOrganization string = "organization"
|
||||
)
|
||||
|
||||
func resourceForkCreate(d *schema.ResourceData, meta interface{}) (err error) {
|
||||
@ -24,8 +25,8 @@ func resourceForkCreate(d *schema.ResourceData, meta interface{}) (err error) {
|
||||
}
|
||||
|
||||
repo, _, err := client.CreateFork(d.Get(forkOwner).(string),
|
||||
d.Get(forkRepo).(string),
|
||||
opts)
|
||||
d.Get(forkRepo).(string),
|
||||
opts)
|
||||
if err == nil {
|
||||
err = setForkResourceData(repo, d)
|
||||
}
|
||||
@ -61,7 +62,24 @@ func resourceForkRead(d *schema.ResourceData, meta interface{}) (err error) {
|
||||
func resourceForkDelete(d *schema.ResourceData, meta interface{}) (err error) {
|
||||
client := meta.(*gitea.Client)
|
||||
|
||||
client.DeleteRepo(d.Get(forkOrganization).(string), d.Get(forkRepo).(string))
|
||||
id, err := strconv.ParseInt(d.Id(), 10, 64)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
repo, _, err := client.GetRepoByID(id)
|
||||
var resp *gitea.Response
|
||||
|
||||
resp, err = client.DeleteRepo(repo.Owner.UserName, repo.Name)
|
||||
|
||||
if err != nil {
|
||||
if resp.StatusCode == 404 {
|
||||
return
|
||||
} else {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
@ -102,6 +120,8 @@ func resourceGiteaFork() *schema.Resource {
|
||||
Description: "The organization that owns the forked repo",
|
||||
},
|
||||
},
|
||||
Description: "`gitea_fork` manages repository fork",
|
||||
Description: "`gitea_fork` manages repository fork to the current user or an organisation\n" +
|
||||
"Forking a repository to a dedicated user is currently unsupported\n" +
|
||||
"Creating a fork using this resource without an organisation will create the fork in the executors name",
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user