diff --git a/release.go b/release.go index 37de353..a8be5a3 100644 --- a/release.go +++ b/release.go @@ -8,11 +8,13 @@ import ( // Release of a repository tagged via GitHub. type Release struct { - ID string - Name string - Description string - URL url.URL - PublishedAt time.Time + ID string + Name string + Description string + URL url.URL + PublishedAt time.Time + IsDraft bool + IsPrerelease bool } // IsReleaseCandidate returns true if the release name hints at an RC release. @@ -25,7 +27,12 @@ func (r Release) IsBeta() bool { return strings.Contains(strings.ToLower(r.Name), "beta") } +// IsDevelopment returns true if the release name hints at a development version release. +func (r Release) IsDevelopment() bool { + return strings.Contains(strings.ToLower(r.Name), "dev") +} + // IsNonstable returns true if one of the non-stable release-checking functions return true. func (r Release) IsNonstable() bool { - return r.IsReleaseCandidate() || r.IsBeta() + return r.IsReleaseCandidate() || r.IsBeta() || r.IsDevelopment() || r.IsDraft || r.IsPrerelease } diff --git a/releasechecker.go b/releasechecker.go index e22ef65..d8174d9 100644 --- a/releasechecker.go +++ b/releasechecker.go @@ -82,11 +82,13 @@ func (c *Checker) query(owner, name string) (Repository, error) { Releases struct { Edges []struct { Node struct { - ID githubql.ID - Name githubql.String - Description githubql.String - URL githubql.URI - PublishedAt githubql.DateTime + ID githubql.ID + Name githubql.String + Description githubql.String + URL githubql.URI + PublishedAt githubql.DateTime + IsDraft githubql.Boolean + IsPrerelease githubql.Boolean } } } `graphql:"releases(last: 1)"` @@ -127,11 +129,13 @@ func (c *Checker) query(owner, name string) (Repository, error) { URL: *query.Repository.URL.URL, Release: Release{ - ID: releaseID, - Name: string(latestRelease.Name), - Description: string(latestRelease.Description), - URL: *latestRelease.URL.URL, - PublishedAt: latestRelease.PublishedAt.Time, + ID: releaseID, + Name: string(latestRelease.Name), + Description: string(latestRelease.Description), + URL: *latestRelease.URL.URL, + PublishedAt: latestRelease.PublishedAt.Time, + IsDraft: bool(latestRelease.IsDraft), + IsPrerelease: bool(latestRelease.IsPrerelease), }, }, nil }
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: