add proper title
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
[](https://ci.weirdnatto.in/teams/main/pipelines/gitea-release-resource) [](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.
|
||||
|
@@ -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),
|
||||
)
|
||||
}
|
||||
|
||||
|
16
gitea.go
16
gitea.go
@@ -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)
|
||||
|
@@ -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
|
||||
}
|
||||
|
||||
|
@@ -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 != "" {
|
||||
|
@@ -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
|
||||
}
|
||||
|
||||
|
@@ -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"`
|
||||
|
||||
|
@@ -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,
|
||||
|
Reference in New Issue
Block a user