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

@@ -1,6 +1,7 @@
package resource
import (
"errors"
"os"
"code.google.com/p/goauth2/oauth"
@@ -13,6 +14,7 @@ import (
type GitHub interface {
ListReleases() ([]github.RepositoryRelease, error)
CreateRelease(release *github.RepositoryRelease) (*github.RepositoryRelease, error)
UpdateRelease(release *github.RepositoryRelease) (*github.RepositoryRelease, error)
ListReleaseAssets(release *github.RepositoryRelease) ([]github.ReleaseAsset, error)
UploadReleaseAsset(release *github.RepositoryRelease, name string, file *os.File) error
@@ -59,6 +61,19 @@ func (g *GitHubClient) CreateRelease(release *github.RepositoryRelease) (*github
return createdRelease, nil
}
func (g *GitHubClient) UpdateRelease(release *github.RepositoryRelease) (*github.RepositoryRelease, error) {
if release.ID == nil {
return nil, errors.New("release did not have an ID: has it been saved yet?")
}
updatedRelease, _, err := g.client.Repositories.EditRelease(g.user, g.repository, *release.ID, release)
if err != nil {
return &github.RepositoryRelease{}, err
}
return updatedRelease, nil
}
func (g *GitHubClient) ListReleaseAssets(release *github.RepositoryRelease) ([]github.ReleaseAsset, error) {
assets, _, err := g.client.Repositories.ListReleaseAssets(g.user, g.repository, *release.ID, nil)
if err != nil {