add option to include github prereleases
This commit is contained in:
parent
85b8ee493e
commit
ed477e8cc6
4 changed files with 47 additions and 23 deletions
|
|
@ -18,11 +18,23 @@ type githubReleaseLatestResponseJson struct {
|
|||
}
|
||||
|
||||
func fetchLatestGithubRelease(request *ReleaseRequest) (*AppRelease, error) {
|
||||
httpRequest, err := http.NewRequest(
|
||||
"GET",
|
||||
fmt.Sprintf("https://api.github.com/repos/%s/releases/latest", request.Repository),
|
||||
nil,
|
||||
)
|
||||
var httpRequest *http.Request
|
||||
var err error
|
||||
var response githubReleaseLatestResponseJson
|
||||
|
||||
if request.IncludeGithubPreReleases {
|
||||
httpRequest, err = http.NewRequest(
|
||||
"GET",
|
||||
fmt.Sprintf("https://api.github.com/repos/%s/releases", request.Repository),
|
||||
nil,
|
||||
)
|
||||
} else {
|
||||
httpRequest, err = http.NewRequest(
|
||||
"GET",
|
||||
fmt.Sprintf("https://api.github.com/repos/%s/releases/latest", request.Repository),
|
||||
nil,
|
||||
)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
@ -32,10 +44,19 @@ func fetchLatestGithubRelease(request *ReleaseRequest) (*AppRelease, error) {
|
|||
httpRequest.Header.Add("Authorization", "Bearer "+(*request.Token))
|
||||
}
|
||||
|
||||
response, err := decodeJsonFromRequest[githubReleaseLatestResponseJson](defaultClient, httpRequest)
|
||||
if request.IncludeGithubPreReleases {
|
||||
releases, err := decodeJsonFromRequest[[]githubReleaseLatestResponseJson](defaultClient, httpRequest)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
response = releases[0]
|
||||
} else {
|
||||
response, err = decodeJsonFromRequest[githubReleaseLatestResponseJson](defaultClient, httpRequest)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
return &AppRelease{
|
||||
|
|
|
|||
|
|
@ -16,9 +16,10 @@ const (
|
|||
)
|
||||
|
||||
type ReleaseRequest struct {
|
||||
Source ReleaseSource
|
||||
Repository string
|
||||
Token *string
|
||||
Source ReleaseSource
|
||||
Repository string
|
||||
Token *string
|
||||
IncludeGithubPreReleases bool
|
||||
}
|
||||
|
||||
func FetchLatestReleases(requests []*ReleaseRequest) (AppReleases, error) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue