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