Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 13 additions & 6 deletions release.go
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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
}
24 changes: 14 additions & 10 deletions releasechecker.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)"`
Expand Down Expand Up @@ -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
}