package sdk import ( "fmt" "net/http" "net/url" ) func (a *Action) Client() *Client { c := &Client{Client: &http.Client{}} c.base = a.env("GITHUB_API_URL") c.token = fmt.Sprintf("Bearer %s", a.env("GITHUB_TOKEN")) return c } type Client struct { *http.Client base string token string } func (c *Client) Do(req *http.Request) (*http.Response, error) { req.Header.Set("Authorization", c.token) if !req.URL.IsAbs() { u, err := url.Parse(fmt.Sprintf("%s%s", c.base, req.URL)) if err != nil { return nil, err } req.URL = u } return c.Client.Do(req) }