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)
|
[](https://ci.weirdnatto.in/teams/main/pipelines/gitea-release-resource) [](https://hub.docker.com/repository/docker/natto17/gitea-release-resource)
|
||||||
# WIP
|
# WIP
|
||||||
Forked from https://github.com/edtan/gitlab-release-resource
|
Forked from https://github.com/edtan/gitlab-release-resource
|
||||||
|
*please help ;-;*
|
||||||
|
|
||||||
# Gitea Releases Resource
|
# 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
|
* `tag`: *Required.* A path to a file containing the name of the Git tag to use
|
||||||
for the release.
|
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
|
* `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.
|
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
|
* `globs`: *Optional.* A list of globs for files that will be uploaded alongside
|
||||||
the created release.
|
the created release.
|
||||||
|
@@ -72,17 +72,17 @@ 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)
|
latestRelease, err := c.gitea.GetReleaseByTag(latestTag.Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return []Version{}, err
|
return []Version{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if (request.Version == Version{}) {
|
if (request.Version == Version{}) {
|
||||||
return []Version{versionFromTag(latestResource)}, nil
|
return []Version{versionFromRelease(latestRelease)}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if latestTag.Name == request.Version.Tag {
|
if latestTag.Name == request.Version.Tag {
|
||||||
return []Version{versionFromTag(latestResource)}, nil
|
return []Version{versionFromRelease(latestRelease)}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
upToLatest := false
|
upToLatest := false
|
||||||
@@ -101,13 +101,13 @@ 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)
|
release, err := c.gitea.GetReleaseByTag(filteredTags[len(filteredTags)-1].Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return []Version{}, err
|
return []Version{}, err
|
||||||
}
|
}
|
||||||
nextVersions = append(
|
nextVersions = append(
|
||||||
nextVersions,
|
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)
|
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, error)
|
GetReleaseByTag(tag_name string) (*gitea.Release, error)
|
||||||
CreateRelease(tag_name string, description string) (*gitea.Release, error)
|
CreateRelease(title string, tag_name string, body string) (*gitea.Release, error)
|
||||||
EditRelease(tag_name string, release_id int64, description 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)
|
CreateAttachment(filePath string, release_id int64) (*gitea.Attachment, error)
|
||||||
GetAttachment(filePath, destPath string) error
|
GetAttachment(filePath, destPath string) error
|
||||||
}
|
}
|
||||||
@@ -214,11 +214,11 @@ func (g *GiteaClient) GetReleaseByTag(tag_name string) (*gitea.Release, error) {
|
|||||||
return release, nil
|
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{
|
opt := gitea.CreateReleaseOption{
|
||||||
Note: description,
|
Note: body,
|
||||||
TagName: tag_name,
|
TagName: tag_name,
|
||||||
Title: "cock and balls full HD",
|
Title: title,
|
||||||
}
|
}
|
||||||
|
|
||||||
release, res, err := g.client.CreateRelease(g.user, g.repository, opt)
|
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
|
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{
|
opt := gitea.EditReleaseOption{
|
||||||
Note: description,
|
Note: body,
|
||||||
TagName: tag_name,
|
TagName: tag_name,
|
||||||
Title: "cock and balls full HD",
|
Title: title,
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
|
@@ -116,8 +116,8 @@ func (c *InCommand) Run(destDir string, request InRequest) (InResponse, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return InResponse{
|
return InResponse{
|
||||||
Version: versionFromTag(release),
|
Version: versionFromRelease(release),
|
||||||
Metadata: metadataFromTag(release),
|
Metadata: metadataFromRelease(release),
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2,7 +2,7 @@ package resource
|
|||||||
|
|
||||||
import "code.gitea.io/sdk/gitea"
|
import "code.gitea.io/sdk/gitea"
|
||||||
|
|
||||||
func metadataFromTag(release *gitea.Release) []MetadataPair {
|
func metadataFromRelease(release *gitea.Release) []MetadataPair {
|
||||||
metadata := []MetadataPair{}
|
metadata := []MetadataPair{}
|
||||||
|
|
||||||
if release.TagName != "" {
|
if release.TagName != "" {
|
||||||
|
@@ -31,17 +31,32 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
|
|||||||
|
|
||||||
tag_name = request.Params.TagPrefix + tag_name
|
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)
|
release, err := c.gitea.GetReleaseByTag(tag_name)
|
||||||
|
|
||||||
if release == nil {
|
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 {
|
if err != nil {
|
||||||
return OutResponse{}, err
|
return OutResponse{}, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// upload files
|
// upload files
|
||||||
var fileLinks []string
|
|
||||||
for _, fileGlob := range params.Globs {
|
for _, fileGlob := range params.Globs {
|
||||||
matches, err := filepath.Glob(filepath.Join(sourceDir, fileGlob))
|
matches, err := filepath.Glob(filepath.Join(sourceDir, fileGlob))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -53,23 +68,22 @@ 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)
|
_, err := c.gitea.CreateAttachment(filePath, release.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return OutResponse{}, err
|
return OutResponse{}, err
|
||||||
}
|
}
|
||||||
fileLinks = append(fileLinks, attachment.Name)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// update the release
|
// 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 {
|
if err != nil {
|
||||||
return OutResponse{}, errors.New("could not get saved tag")
|
return OutResponse{}, errors.New("could not get saved tag")
|
||||||
}
|
}
|
||||||
|
|
||||||
return OutResponse{
|
return OutResponse{
|
||||||
Version: versionFromTag(release),
|
Version: versionFromRelease(release),
|
||||||
Metadata: metadataFromTag(release),
|
Metadata: metadataFromRelease(release),
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -56,6 +56,7 @@ type OutParams struct {
|
|||||||
NamePath string `json:"name"`
|
NamePath string `json:"name"`
|
||||||
BodyPath string `json:"body"`
|
BodyPath string `json:"body"`
|
||||||
TagPath string `json:"tag"`
|
TagPath string `json:"tag"`
|
||||||
|
TitlePath string `json:"title"`
|
||||||
CommitishPath string `json:"commitish"`
|
CommitishPath string `json:"commitish"`
|
||||||
TagPrefix string `json:"tag_prefix"`
|
TagPrefix string `json:"tag_prefix"`
|
||||||
|
|
||||||
|
@@ -31,7 +31,7 @@ func (vp *versionParser) parse(tag string) string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func versionFromTag(release *gitea.Release) Version {
|
func versionFromRelease(release *gitea.Release) Version {
|
||||||
return Version{
|
return Version{
|
||||||
Tag: release.TagName,
|
Tag: release.TagName,
|
||||||
CommitSHA: release.Target,
|
CommitSHA: release.Target,
|
||||||
|
Reference in New Issue
Block a user