atleast basic shit (barely) works now
This commit is contained in:
@@ -72,7 +72,7 @@ func (c *CheckCommand) Run(request CheckRequest) ([]Version, error) {
|
||||
return []Version{}, nil
|
||||
}
|
||||
latestTag := filteredTags[len(filteredTags)-1]
|
||||
latestResource, _, err := c.gitea.GetReleaseByTag(latestTag.Name)
|
||||
latestResource, err := c.gitea.GetReleaseByTag(latestTag.Name)
|
||||
if err != nil {
|
||||
return []Version{}, err
|
||||
}
|
||||
@@ -101,7 +101,7 @@ func (c *CheckCommand) Run(request CheckRequest) ([]Version, error) {
|
||||
|
||||
if !upToLatest {
|
||||
// current version was removed; start over from latest
|
||||
resource, _, err := c.gitea.GetReleaseByTag(filteredTags[len(filteredTags)-1].Name)
|
||||
resource, err := c.gitea.GetReleaseByTag(filteredTags[len(filteredTags)-1].Name)
|
||||
if err != nil {
|
||||
return []Version{}, err
|
||||
}
|
||||
|
50
gitea.go
50
gitea.go
@@ -2,7 +2,6 @@ package resource
|
||||
|
||||
import (
|
||||
"crypto/tls"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
@@ -24,8 +23,8 @@ type Gitea interface {
|
||||
ListTagsUntil(tag_name string) ([]*gitea.Tag, error)
|
||||
GetTag(tag_name string) (*gitea.Tag, error)
|
||||
CreateTag(tag_name string, ref string) (*gitea.Tag, error)
|
||||
GetReleaseByTag(tag_name string) (*gitea.Release, int64, error)
|
||||
CreateRelease(tag_name string, description string) (*gitea.Release, int64, error)
|
||||
GetReleaseByTag(tag_name string) (*gitea.Release, error)
|
||||
CreateRelease(tag_name string, description string) (*gitea.Release, error)
|
||||
EditRelease(tag_name string, release_id int64, description string) (*gitea.Release, error)
|
||||
CreateAttachment(filePath string, release_id int64) (*gitea.Attachment, error)
|
||||
GetAttachment(filePath, destPath string) error
|
||||
@@ -196,43 +195,47 @@ func (g *GiteaClient) CreateTag(ref string, tag_name string) (*gitea.Tag, error)
|
||||
return tag, nil
|
||||
}
|
||||
|
||||
type ReleaseResp struct {
|
||||
id int64 `json:"id"`
|
||||
}
|
||||
|
||||
func (g *GiteaClient) GetReleaseByTag(tag_name string) (*gitea.Release, int64, error) {
|
||||
func (g *GiteaClient) GetReleaseByTag(tag_name string) (*gitea.Release, error) {
|
||||
release, res, err := g.client.GetReleaseByTag(g.user, g.repository, tag_name)
|
||||
|
||||
if err != nil {
|
||||
return &gitea.Release{}, 0, err
|
||||
if res.StatusCode == http.StatusNotFound {
|
||||
return nil, nil
|
||||
}
|
||||
defer res.Body.Close()
|
||||
|
||||
response := ReleaseResp{}
|
||||
json.NewDecoder(res.Body).Decode(response)
|
||||
return release, response.id, nil
|
||||
err = res.Body.Close()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return &gitea.Release{}, err
|
||||
}
|
||||
|
||||
return release, nil
|
||||
}
|
||||
|
||||
func (g *GiteaClient) CreateRelease(tag_name string, description string) (*gitea.Release, int64, error) {
|
||||
func (g *GiteaClient) CreateRelease(tag_name string, description string) (*gitea.Release, error) {
|
||||
opt := gitea.CreateReleaseOption{
|
||||
Note: description,
|
||||
TagName: tag_name,
|
||||
Title: "cock and balls full HD",
|
||||
}
|
||||
|
||||
release, res, err := g.client.CreateRelease(g.user, g.repository, opt)
|
||||
if err != nil {
|
||||
return &gitea.Release{}, 0, err
|
||||
return &gitea.Release{}, err
|
||||
}
|
||||
|
||||
err = res.Body.Close()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if res.StatusCode == http.StatusConflict {
|
||||
return nil, 0, errors.New("release already exists")
|
||||
return nil, errors.New("release already exists")
|
||||
}
|
||||
|
||||
defer res.Body.Close()
|
||||
|
||||
response := ReleaseResp{}
|
||||
json.NewDecoder(res.Body).Decode(response)
|
||||
return release, response.id, nil
|
||||
return release, nil
|
||||
}
|
||||
|
||||
func (g *GiteaClient) EditRelease(tag_name string, release_id int64, description string) (*gitea.Release, error) {
|
||||
@@ -240,6 +243,7 @@ func (g *GiteaClient) EditRelease(tag_name string, release_id int64, description
|
||||
opt := gitea.EditReleaseOption{
|
||||
Note: description,
|
||||
TagName: tag_name,
|
||||
Title: "cock and balls full HD",
|
||||
}
|
||||
|
||||
release, res, err := g.client.EditRelease(g.user, g.repository, release_id, opt)
|
||||
@@ -273,7 +277,7 @@ func (g *GiteaClient) GetAttachment(filePath, destPath string) error {
|
||||
}
|
||||
defer out.Close()
|
||||
|
||||
filePathRef, err := url.Parse(g.repository + filePath)
|
||||
filePathRef, err := url.Parse(filePath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@@ -68,7 +68,7 @@ func (c *InCommand) Run(destDir string, request InRequest) (InResponse, error) {
|
||||
return InResponse{}, err
|
||||
}
|
||||
var release *gitea.Release
|
||||
release, _, err = c.gitea.GetReleaseByTag(request.Version.Tag)
|
||||
release, err = c.gitea.GetReleaseByTag(request.Version.Tag)
|
||||
|
||||
if err != nil {
|
||||
return InResponse{}, err
|
||||
|
@@ -24,11 +24,6 @@ func NewOutCommand(gitea Gitea, writer io.Writer) *OutCommand {
|
||||
func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, error) {
|
||||
params := request.Params
|
||||
|
||||
// name, err := c.fileContents(filepath.Join(sourceDir, request.Params.NamePath))
|
||||
// if err != nil {
|
||||
// return OutResponse{}, err
|
||||
// }
|
||||
|
||||
tag_name, err := c.fileContents(filepath.Join(sourceDir, request.Params.TagPath))
|
||||
if err != nil {
|
||||
return OutResponse{}, err
|
||||
@@ -36,17 +31,10 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
|
||||
|
||||
tag_name = request.Params.TagPrefix + tag_name
|
||||
|
||||
// if request.Params.BodyPath != "" {
|
||||
// _, err := c.fileContents(filepath.Join(sourceDir, request.Params.BodyPath))
|
||||
// if err != nil {
|
||||
// return OutResponse{}, err
|
||||
// }
|
||||
// }
|
||||
|
||||
release, release_id, err := c.gitea.GetReleaseByTag(tag_name)
|
||||
release, err := c.gitea.GetReleaseByTag(tag_name)
|
||||
|
||||
if release == nil {
|
||||
_, release_id, err = c.gitea.CreateRelease(tag_name, "Auto-generated from Concourse Gitea Release Resource")
|
||||
release, err = c.gitea.CreateRelease(tag_name, "Auto-generated from Concourse Gitea Release Resource")
|
||||
if err != nil {
|
||||
return OutResponse{}, err
|
||||
}
|
||||
@@ -65,7 +53,7 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
|
||||
}
|
||||
|
||||
for _, filePath := range matches {
|
||||
attachment, err := c.gitea.CreateAttachment(filePath, release_id)
|
||||
attachment, err := c.gitea.CreateAttachment(filePath, release.ID)
|
||||
if err != nil {
|
||||
return OutResponse{}, err
|
||||
}
|
||||
@@ -74,7 +62,7 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
|
||||
}
|
||||
|
||||
// update the release
|
||||
_, err = c.gitea.EditRelease(tag_name, release_id, strings.Join(fileLinks, "\n"))
|
||||
_, err = c.gitea.EditRelease(tag_name, release.ID, strings.Join(fileLinks, "\n"))
|
||||
if err != nil {
|
||||
return OutResponse{}, errors.New("could not get saved tag")
|
||||
}
|
||||
|
Reference in New Issue
Block a user