atleast basic shit (barely) works now

This commit is contained in:
2022-02-20 01:30:05 +05:30
parent 39205467a1
commit 259f477b6e
4 changed files with 34 additions and 42 deletions

View File

@@ -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
}

View File

@@ -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 res.StatusCode == http.StatusNotFound {
return nil, nil
}
err = res.Body.Close()
if err != nil {
return &gitea.Release{}, 0, err
}
defer res.Body.Close()
response := ReleaseResp{}
json.NewDecoder(res.Body).Decode(response)
return release, response.id, nil
return nil, err
}
func (g *GiteaClient) CreateRelease(tag_name string, description string) (*gitea.Release, int64, error) {
if err != nil {
return &gitea.Release{}, err
}
return release, nil
}
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
}

View File

@@ -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

View File

@@ -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")
}