30 lines
533 B
Go
30 lines
533 B
Go
|
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, _ := url.Parse(fmt.Sprintf("%s%s", c.base, req.URL))
|
||
|
req.URL = u
|
||
|
}
|
||
|
return c.Client.Do(req)
|
||
|
}
|