mirror of
https://github.com/glanceapp/glance.git
synced 2025-06-21 18:31:24 +02:00
add option to include github prereleases
This commit is contained in:
parent
85b8ee493e
commit
ed477e8cc6
@ -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) {
|
||||
|
@ -49,7 +49,7 @@ func NewConfigFromYml(contents io.Reader) (*Config, error) {
|
||||
func NewConfig() *Config {
|
||||
config := &Config{}
|
||||
|
||||
config.Server.Host = ""
|
||||
config.Server.Host = "127.0.0.1"
|
||||
config.Server.Port = 8080
|
||||
|
||||
return config
|
||||
|
@ -12,15 +12,16 @@ import (
|
||||
)
|
||||
|
||||
type Releases struct {
|
||||
widgetBase `yaml:",inline"`
|
||||
Releases feed.AppReleases `yaml:"-"`
|
||||
releaseRequests []*feed.ReleaseRequest `yaml:"-"`
|
||||
Repositories []string `yaml:"repositories"`
|
||||
Token OptionalEnvString `yaml:"token"`
|
||||
GitLabToken OptionalEnvString `yaml:"gitlab-token"`
|
||||
Limit int `yaml:"limit"`
|
||||
CollapseAfter int `yaml:"collapse-after"`
|
||||
ShowSourceIcon bool `yaml:"show-source-icon"`
|
||||
widgetBase `yaml:",inline"`
|
||||
Releases feed.AppReleases `yaml:"-"`
|
||||
releaseRequests []*feed.ReleaseRequest `yaml:"-"`
|
||||
Repositories []string `yaml:"repositories"`
|
||||
Token OptionalEnvString `yaml:"token"`
|
||||
GitLabToken OptionalEnvString `yaml:"gitlab-token"`
|
||||
Limit int `yaml:"limit"`
|
||||
CollapseAfter int `yaml:"collapse-after"`
|
||||
ShowSourceIcon bool `yaml:"show-source-icon"`
|
||||
IncludeGithubPreReleases bool `yaml:"include-github-prereleases"`
|
||||
}
|
||||
|
||||
func (widget *Releases) Initialize() error {
|
||||
@ -42,8 +43,9 @@ func (widget *Releases) Initialize() error {
|
||||
var request *feed.ReleaseRequest
|
||||
if len(parts) == 1 {
|
||||
request = &feed.ReleaseRequest{
|
||||
Source: feed.ReleaseSourceGithub,
|
||||
Repository: repository,
|
||||
Source: feed.ReleaseSourceGithub,
|
||||
Repository: repository,
|
||||
IncludeGithubPreReleases: widget.IncludeGithubPreReleases,
|
||||
}
|
||||
|
||||
if widget.Token != "" {
|
||||
|
Loading…
x
Reference in New Issue
Block a user