github: use the provided api url

we were always setting the public github url in the github client instead of the
provided api url.
This commit is contained in:
Simone Gotti 2020-02-10 10:08:02 +01:00
parent 3b09cfd6a6
commit 59463944db

View File

@ -122,16 +122,31 @@ func New(opts Opts) (*Client, error) {
} }
httpClient := &http.Client{Transport: &TokenTransport{token: opts.Token, rt: transport}} httpClient := &http.Client{Transport: &TokenTransport{token: opts.Token, rt: transport}}
isPublicGithub := false
// TODO(sgotti) improve detection of public github url (handle also trailing slash)
if opts.APIURL == GitHubAPIURL { if opts.APIURL == GitHubAPIURL {
isPublicGithub = true
}
if isPublicGithub {
opts.WebURL = GitHubWebURL opts.WebURL = GitHubWebURL
if !strings.HasSuffix(opts.APIURL, "/") {
opts.APIURL += "/"
}
} else { } else {
if opts.WebURL == "" { if opts.WebURL == "" {
opts.WebURL = opts.APIURL opts.WebURL = opts.APIURL
} }
if !strings.HasSuffix(opts.APIURL, "/") {
opts.APIURL += "/"
}
if !strings.HasSuffix(opts.APIURL, "/api/v3/") {
opts.APIURL += "api/v3/"
}
} }
client := github.NewClient(httpClient) client := github.NewClient(httpClient)
client.BaseURL, _ = url.Parse(GitHubAPIURL + "/") client.BaseURL, _ = url.Parse(opts.APIURL)
return &Client{ return &Client{
client: client, client: client,