add proper title

This commit is contained in:
2022-02-20 02:44:50 +05:30
parent 45d9fcc84d
commit e543d93265
8 changed files with 44 additions and 26 deletions

View File

@@ -1,7 +1,7 @@
[![Concourse CI](https://ci.weirdnatto.in/api/v1/teams/main/pipelines/gitea-release-resource/badge)](https://ci.weirdnatto.in/teams/main/pipelines/gitea-release-resource) [![Docker](https://img.shields.io/docker/image-size/natto17/gitea-release-resource.svg)](https://hub.docker.com/repository/docker/natto17/gitea-release-resource)
# WIP
Forked from https://github.com/edtan/gitlab-release-resource
*please help ;-;*
# Gitea Releases Resource
@@ -109,10 +109,13 @@ matching the patterns in `globs` to the release.
* `tag`: *Required.* A path to a file containing the name of the Git tag to use
for the release.
* `title`: *Optional.* A path to a file containing the name of the title
for the release. (Defaults to tag name)
* `tag_prefix`: *Optional.* If specified, the tag read from the file will be
prepended with this string. This is useful for adding v in front of version numbers.
* ~~`body`: *Optional.* A path to a file containing the body text of the release.~~ (Not yet supported)
* `body`: *Optional.* A path to a file containing the body text of the release.
* `globs`: *Optional.* A list of globs for files that will be uploaded alongside
the created release.

View File

@@ -72,17 +72,17 @@ func (c *CheckCommand) Run(request CheckRequest) ([]Version, error) {
return []Version{}, nil
}
latestTag := filteredTags[len(filteredTags)-1]
latestResource, err := c.gitea.GetReleaseByTag(latestTag.Name)
latestRelease, err := c.gitea.GetReleaseByTag(latestTag.Name)
if err != nil {
return []Version{}, err
}
if (request.Version == Version{}) {
return []Version{versionFromTag(latestResource)}, nil
return []Version{versionFromRelease(latestRelease)}, nil
}
if latestTag.Name == request.Version.Tag {
return []Version{versionFromTag(latestResource)}, nil
return []Version{versionFromRelease(latestRelease)}, nil
}
upToLatest := false
@@ -101,13 +101,13 @@ 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)
release, err := c.gitea.GetReleaseByTag(filteredTags[len(filteredTags)-1].Name)
if err != nil {
return []Version{}, err
}
nextVersions = append(
nextVersions,
versionFromTag(resource),
versionFromRelease(release),
)
}

View File

@@ -24,8 +24,8 @@ type Gitea interface {
GetTag(tag_name string) (*gitea.Tag, error)
CreateTag(tag_name string, ref string) (*gitea.Tag, 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)
CreateRelease(title string, tag_name string, body string) (*gitea.Release, error)
EditRelease(title string, tag_name string, release_id int64, body string) (*gitea.Release, error)
CreateAttachment(filePath string, release_id int64) (*gitea.Attachment, error)
GetAttachment(filePath, destPath string) error
}
@@ -214,11 +214,11 @@ func (g *GiteaClient) GetReleaseByTag(tag_name string) (*gitea.Release, error) {
return release, nil
}
func (g *GiteaClient) CreateRelease(tag_name string, description string) (*gitea.Release, error) {
func (g *GiteaClient) CreateRelease(title string, tag_name string, body string) (*gitea.Release, error) {
opt := gitea.CreateReleaseOption{
Note: description,
Note: body,
TagName: tag_name,
Title: "cock and balls full HD",
Title: title,
}
release, res, err := g.client.CreateRelease(g.user, g.repository, opt)
@@ -238,12 +238,12 @@ func (g *GiteaClient) CreateRelease(tag_name string, description string) (*gitea
return release, nil
}
func (g *GiteaClient) EditRelease(tag_name string, release_id int64, description string) (*gitea.Release, error) {
func (g *GiteaClient) EditRelease(title string, tag_name string, release_id int64, body string) (*gitea.Release, error) {
opt := gitea.EditReleaseOption{
Note: description,
Note: body,
TagName: tag_name,
Title: "cock and balls full HD",
Title: title,
}
release, res, err := g.client.EditRelease(g.user, g.repository, release_id, opt)

View File

@@ -116,8 +116,8 @@ func (c *InCommand) Run(destDir string, request InRequest) (InResponse, error) {
}
return InResponse{
Version: versionFromTag(release),
Metadata: metadataFromTag(release),
Version: versionFromRelease(release),
Metadata: metadataFromRelease(release),
}, nil
}

View File

@@ -2,7 +2,7 @@ package resource
import "code.gitea.io/sdk/gitea"
func metadataFromTag(release *gitea.Release) []MetadataPair {
func metadataFromRelease(release *gitea.Release) []MetadataPair {
metadata := []MetadataPair{}
if release.TagName != "" {

View File

@@ -31,17 +31,32 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
tag_name = request.Params.TagPrefix + tag_name
title := tag_name
if request.Params.TitlePath != "" {
title, err = c.fileContents(filepath.Join(sourceDir, request.Params.TitlePath))
if err != nil {
return OutResponse{}, err
}
}
body := "Auto-generated from Concourse Gitea Release Resource"
if request.Params.BodyPath != "" {
body, err = c.fileContents(filepath.Join(sourceDir, request.Params.TitlePath))
if err != nil {
return OutResponse{}, err
}
}
release, err := c.gitea.GetReleaseByTag(tag_name)
if release == nil {
release, err = c.gitea.CreateRelease(tag_name, "Auto-generated from Concourse Gitea Release Resource")
release, err = c.gitea.CreateRelease(title, tag_name, body)
if err != nil {
return OutResponse{}, err
}
}
// upload files
var fileLinks []string
for _, fileGlob := range params.Globs {
matches, err := filepath.Glob(filepath.Join(sourceDir, fileGlob))
if err != nil {
@@ -53,23 +68,22 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
}
for _, filePath := range matches {
attachment, err := c.gitea.CreateAttachment(filePath, release.ID)
_, err := c.gitea.CreateAttachment(filePath, release.ID)
if err != nil {
return OutResponse{}, err
}
fileLinks = append(fileLinks, attachment.Name)
}
}
// update the release
_, err = c.gitea.EditRelease(tag_name, release.ID, strings.Join(fileLinks, "\n"))
_, err = c.gitea.EditRelease(title, tag_name, release.ID, body)
if err != nil {
return OutResponse{}, errors.New("could not get saved tag")
}
return OutResponse{
Version: versionFromTag(release),
Metadata: metadataFromTag(release),
Version: versionFromRelease(release),
Metadata: metadataFromRelease(release),
}, nil
}

View File

@@ -56,6 +56,7 @@ type OutParams struct {
NamePath string `json:"name"`
BodyPath string `json:"body"`
TagPath string `json:"tag"`
TitlePath string `json:"title"`
CommitishPath string `json:"commitish"`
TagPrefix string `json:"tag_prefix"`

View File

@@ -31,7 +31,7 @@ func (vp *versionParser) parse(tag string) string {
return ""
}
func versionFromTag(release *gitea.Release) Version {
func versionFromRelease(release *gitea.Release) Version {
return Version{
Tag: release.TagName,
CommitSHA: release.Target,