feat(internal/releaser): add SetReleaseType Method to Releaser interface

This commit is contained in:
Felix Wiedmann
2019-06-20 00:48:07 +02:00
parent 849dc6c5b7
commit 92d569c14c
3 changed files with 26 additions and 10 deletions

View File

@@ -19,11 +19,12 @@ const GITHUB = "github"
// Client type struct
type Client struct {
config *config.GitHubProvider
client *github.Client
context context.Context
release *github.RepositoryRelease
baseURL string
config *config.GitHubProvider
client *github.Client
context context.Context
release *github.RepositoryRelease
draft, prerelease bool
baseURL string
}
// New initialize a new GitHubRelease
@@ -64,6 +65,18 @@ func (g Client) GetCompareURL(oldVersion, newVersion string) string {
return fmt.Sprintf("%s/%s/%s/compare/%s...%s", g.baseURL, g.config.User, g.config.Repo, oldVersion, newVersion)
}
//SetReleaseType sets the provider release type
func (g Client) SetReleaseType(releaseVersion *shared.ReleaseVersion) {
if !releaseVersion.Next.Draft {
log.Debugf("Set release as draft")
g.draft = true
}
if releaseVersion.Next.Prerelease() != "" {
log.Debugf("Set release as prerelease")
g.prerelease = true
}
}
//ValidateConfig for github
func (g Client) ValidateConfig() error {
log.Debugf("validate GitHub provider config")
@@ -83,16 +96,16 @@ func (g Client) ValidateConfig() error {
// CreateRelease creates release on remote
func (g Client) CreateRelease(releaseVersion *shared.ReleaseVersion, generatedChangelog *shared.GeneratedChangelog) error {
tag := releaseVersion.Next.Version.String()
log.Debugf("create relase with for version %s", tag)
prerelease := releaseVersion.Next.Version.Prerelease() != ""
tag := releaseVersion.Next.String()
log.Debugf("create release witth version %s", tag)
release, resp, err := g.client.Repositories.CreateRelease(g.context, g.config.User, g.config.Repo, &github.RepositoryRelease{
TagName: &tag,
TargetCommitish: &releaseVersion.Branch,
Name: &generatedChangelog.Title,
Body: &generatedChangelog.Content,
Draft: &prerelease,
Prerelease: &prerelease,
Draft: &g.draft,
Prerelease: &g.prerelease,
})
if err != nil {

View File

@@ -22,6 +22,7 @@ type Releaser interface {
UploadAssets(assets []config.Asset) error
GetCommitURL() string
GetCompareURL(oldVersion, newVersion string) string
SetReleaseType(*shared.ReleaseVersion)
}
// New initialize a Relerser