diff --git a/README.md b/README.md index 228580a..622ab8b 100644 --- a/README.md +++ b/README.md @@ -23,16 +23,22 @@ Fetches and creates versioned GitHub resources. for uploading. If `github_api_url` is set, this value defaults to the same value, but if you have your own endpoint, this field will override it. +* `release`: *Optional. Default `true`.* When set to `true`, `put` produces + release and `check` will detects releases. If `false`, `put` and `check` will ignore releases. + Note that releases must have semver compliant tags to be detected. + +* `pre_release`: *Optional. Default `false`.* When set to `true`, `put` produces + pre-release and `check` detects prereleases. If `false`, only non-prerelease releases + will be detected and published. Note that releases must have semver compliant + tags to be detected. + If `release` and `pre_release` are set to `true` `put` produces + release and `check` will detects prereleases and releases. + * `drafts`: *Optional. Default `false`.* When set to `true`, `put` produces drafts and `check` only detects drafts. If `false`, only non-draft releases 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 4d9fd1c..3131144 100644 --- a/check_command.go +++ b/check_command.go @@ -35,7 +35,11 @@ func (c *CheckCommand) Run(request CheckRequest) ([]Version, error) { if request.Source.Drafts != *release.Draft { continue } - if request.Source.PreRelease != *release.Prerelease { + + // Should we skip this release + // a- prerelease condition dont match our source config + // b- release condition match prerealse in github since github has true/false to describe release/prerelase + if request.Source.PreRelease != *release.Prerelease && request.Source.Release == *release.Prerelease { continue } diff --git a/cmd/check/check.go b/cmd/check/check.go index 469ef6d..f97489d 100644 --- a/cmd/check/check.go +++ b/cmd/check/check.go @@ -8,7 +8,7 @@ import ( ) func main() { - var request resource.CheckRequest + request := resource.NewCheckRequest() inputRequest(&request) github, err := resource.NewGitHubClient(request.Source) diff --git a/cmd/out/out.go b/cmd/out/out.go index 7b92e3f..a84234e 100644 --- a/cmd/out/out.go +++ b/cmd/out/out.go @@ -13,7 +13,7 @@ func main() { os.Exit(1) } - var request resource.OutRequest + request := resource.NewCheckRequest() inputRequest(&request) sourceDir := os.Args[1] diff --git a/out_command.go b/out_command.go index 75eee5a..5d877d6 100644 --- a/out_command.go +++ b/out_command.go @@ -58,7 +58,10 @@ func (c *OutCommand) Run(sourceDir string, request OutRequest) (OutResponse, err } draft := request.Source.Drafts - prerelease := request.Source.PreRelease + prerelease := false + if request.Source.PreRelease == true && request.Source.Release == false { + prerelease = request.Source.PreRelease + } release := &github.RepositoryRelease{ Name: github.String(name), diff --git a/resources.go b/resources.go index a9f53ab..2e56d98 100644 --- a/resources.go +++ b/resources.go @@ -9,6 +9,7 @@ type Source struct { AccessToken string `json:"access_token"` Drafts bool `json:"drafts"` PreRelease bool `json:"pre_release"` + Release bool `json:"release"` } type CheckRequest struct { @@ -16,6 +17,12 @@ type CheckRequest struct { Version Version `json:"version"` } +func NewCheckRequest() CheckRequest { + res := CheckRequest{} + res.Source.Release = true + return res +} + type InRequest struct { Source Source `json:"source"` Version *Version `json:"version"`