mirror of
https://github.com/MedzikUser/go-github-selfupdate.git
synced 2024-08-15 03:25:29 +00:00
add more information to Release struct
- asset's size - release name - release time
This commit is contained in:
parent
a685f32589
commit
f6766d9880
3 changed files with 34 additions and 3 deletions
|
@ -112,10 +112,14 @@ func (d *ReleaseDetector) DetectLatest(slug string) (release *Release, found boo
|
|||
tag = tag[indices[0]:]
|
||||
}
|
||||
|
||||
publishedAt := rel.GetPublishedAt().Time
|
||||
release = &Release{
|
||||
AssetURL: url,
|
||||
AssetByteSize: asset.GetSize(),
|
||||
URL: rel.GetHTMLURL(),
|
||||
ReleaseNotes: rel.GetBody(),
|
||||
Name: rel.GetName(),
|
||||
PublishedAt: &publishedAt,
|
||||
}
|
||||
|
||||
release.Version, err = semver.Make(tag)
|
||||
|
|
|
@ -39,6 +39,15 @@ func TestDetectReleaseWithVersionPrefix(t *testing.T) {
|
|||
if r.ReleaseNotes == "" {
|
||||
t.Error("Description should not be empty for this repo")
|
||||
}
|
||||
if r.Name == "" {
|
||||
t.Error("Release name is unexpectedly empty")
|
||||
}
|
||||
if r.AssetByteSize == 0 {
|
||||
t.Error("Asset's size is unexpectedly zero")
|
||||
}
|
||||
if r.PublishedAt.IsZero() {
|
||||
t.Error("Release time is unexpectedly zero")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDetectReleasesForVariousArchives(t *testing.T) {
|
||||
|
@ -46,6 +55,8 @@ func TestDetectReleasesForVariousArchives(t *testing.T) {
|
|||
"rhysd-test/test-release-zip",
|
||||
"rhysd-test/test-release-tar",
|
||||
"rhysd-test/test-release-gzip",
|
||||
"rhysd-test/test-release-xz",
|
||||
"rhysd-test/test-release-tar-xz",
|
||||
} {
|
||||
t.Run(repo, func(t *testing.T) {
|
||||
r, ok, err := DetectLatest(repo)
|
||||
|
@ -71,6 +82,15 @@ func TestDetectReleasesForVariousArchives(t *testing.T) {
|
|||
if !strings.HasPrefix(r.AssetURL, fmt.Sprintf("https://github.com/%s/releases/download/v1.2.3/", repo)) {
|
||||
t.Error("Unexpected asset URL:", r.AssetURL)
|
||||
}
|
||||
if r.Name == "" {
|
||||
t.Error("Release name is unexpectedly empty")
|
||||
}
|
||||
if r.AssetByteSize == 0 {
|
||||
t.Error("Asset's size is unexpectedly zero")
|
||||
}
|
||||
if r.PublishedAt.IsZero() {
|
||||
t.Error("Release time is unexpectedly zero")
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package selfupdate
|
|||
|
||||
import (
|
||||
"github.com/blang/semver"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Release represents a release asset for current OS and arch.
|
||||
|
@ -10,8 +11,14 @@ type Release struct {
|
|||
Version semver.Version
|
||||
// AssetURL is a URL to the uploaded file for the release
|
||||
AssetURL string
|
||||
// AssetSize represents the size of asset in bytes
|
||||
AssetByteSize int
|
||||
// URL is a URL to release page for browsing
|
||||
URL string
|
||||
// ReleaseNotes is a release notes of the release
|
||||
ReleaseNotes string
|
||||
// Name represents a name of the release
|
||||
Name string
|
||||
// PublishedAt is the time when the release was published
|
||||
PublishedAt *time.Time
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue