1
0
mirror of https://github.com/packwiz/packwiz.git synced 2025-04-26 16:16:31 +02:00
unilock c96a6a30ad github: don't return releases on wrong branch
if a branch is specified, but a release cannot be found on that branch, return an error instead of simply the latest release

Signed-off-by: unilock <unilock@fennet.rentals>
2024-04-15 14:48:57 -04:00

56 lines
1.1 KiB
Go

package github
import (
"fmt"
"net/http"
"github.com/packwiz/packwiz/core"
)
// TODO: allow setting github api key via env variable
const ghApiServer = "api.github.com"
type ghApiClient struct {
httpClient *http.Client
}
var ghDefaultClient = ghApiClient{&http.Client{}}
func (c *ghApiClient) makeGet(url string) (*http.Response, error) {
req, err := http.NewRequest("GET", url, nil)
if err != nil {
return nil, err
}
req.Header.Set("User-Agent", core.UserAgent)
req.Header.Set("Accept", "application/vnd.github+json")
resp, err := c.httpClient.Do(req)
if err != nil {
return nil, err
}
if resp.StatusCode != 200 {
return nil, fmt.Errorf("invalid response status: %v", resp.Status)
}
return resp, nil
}
func (c *ghApiClient) getRepo(slug string) (*http.Response, error) {
resp, err := c.makeGet("https://" + ghApiServer + "/repos/" + slug)
if err != nil {
return resp, err
}
return resp, nil
}
func (c *ghApiClient) getReleases(slug string) (*http.Response, error) {
resp, err := c.getRepo(slug + "/releases")
if err != nil {
return resp, err
}
return resp, nil
}