update releases if they already exist

[#76848252]

Signed-off-by: Chris Brown <cbrown@pivotal.io>
This commit is contained in:
Alex Suraci
2015-02-20 10:57:45 -08:00
committed by Chris Brown
parent c4436c0350
commit 125bd204e4
4 changed files with 207 additions and 117 deletions

View File

@@ -46,7 +46,28 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
Body: github.String(body),
}
createdRelease, err := c.github.CreateRelease(release)
existingReleases, err := c.github.ListReleases()
if err != nil {
return OutResponse{}, err
}
var existingRelease *github.RepositoryRelease
for _, e := range existingReleases {
if *e.TagName == tag {
existingRelease = &e
break
}
}
if existingRelease != nil {
existingRelease.Name = github.String(name)
existingRelease.Body = github.String(body)
release, err = c.github.UpdateRelease(existingRelease)
} else {
release, err = c.github.CreateRelease(release)
}
if err != nil {
return OutResponse{}, err
}
@@ -64,7 +85,7 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
}
name := filepath.Base(filePath)
err = c.github.UploadReleaseAsset(createdRelease, name, file)
err = c.github.UploadReleaseAsset(release, name, file)
if err != nil {
return OutResponse{}, err
}
@@ -77,7 +98,7 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err
Version: Version{
Tag: tag,
},
Metadata: metadataFromRelease(createdRelease),
Metadata: metadataFromRelease(release),
}, nil
}