diff --git a/README.md b/README.md index 11c6264..228580a 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,11 @@ Fetches and creates versioned GitHub resources. will be detected and published. Note that releases must have semver compliant tags to be detected, even if they're drafts. +* `pre_release`: *Optional. Default `false`.* When set to `true`, `put` produces + pre-release and `check` only detects prereleases. If `false`, only non-prerelease releases + will be detected and published. Note that releases must have semver compliant + tags to be detected. + ### Example ``` yaml diff --git a/check_command.go b/check_command.go index ad71a10..4d9fd1c 100644 --- a/check_command.go +++ b/check_command.go @@ -35,6 +35,10 @@ func (c *CheckCommand) Run(request CheckRequest) ([]Version, error) { if request.Source.Drafts != *release.Draft { continue } + if request.Source.PreRelease != *release.Prerelease { + continue + } + if release.TagName == nil { continue } @@ -67,7 +71,7 @@ func (c *CheckCommand) Run(request CheckRequest) ([]Version, error) { for _, release := range filteredReleases { if !upToLatest { - if *release.Draft { + if *release.Draft || *release.Prerelease { id := *release.ID upToLatest = request.Version.ID == strconv.Itoa(id) } else { diff --git a/out_command.go b/out_command.go index f74a59c..75eee5a 100644 --- a/out_command.go +++ b/out_command.go @@ -58,12 +58,14 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err } draft := request.Source.Drafts + prerelease := request.Source.PreRelease release := &github.RepositoryRelease{ Name: github.String(name), TagName: github.String(tag), Body: github.String(body), Draft: github.Bool(draft), + Prerelease: github.Bool(prerelease), TargetCommitish: github.String(targetCommitish), } @@ -89,6 +91,7 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err existingRelease.Name = github.String(name) existingRelease.TargetCommitish = github.String(targetCommitish) existingRelease.Draft = github.Bool(draft) + existingRelease.Prerelease = github.Bool(prerelease) if bodySpecified { existingRelease.Body = github.String(body) diff --git a/resources.go b/resources.go index 761fbfb..a9f53ab 100644 --- a/resources.go +++ b/resources.go @@ -8,6 +8,7 @@ type Source struct { GitHubUploadsURL string `json:"github_uploads_url"` AccessToken string `json:"access_token"` Drafts bool `json:"drafts"` + PreRelease bool `json:"pre_release"` } type CheckRequest struct {