1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2025-01-18 05:18:24 +02:00

42 lines
845 B
Go
Raw Normal View History

2019-11-04 16:07:30 +01:00
package github
import (
"context"
"net/url"
"strings"
2019-11-04 16:07:30 +01:00
"github.com/google/go-github/v32/github"
2019-11-04 16:07:30 +01:00
"golang.org/x/oauth2"
)
//NewClient creates a new GitHub client using an OAuth token for authentication
func NewClient(token, apiURL, uploadURL string) (context.Context, *github.Client, error) {
ctx := context.Background()
ts := oauth2.StaticTokenSource(
&oauth2.Token{AccessToken: token},
)
tc := oauth2.NewClient(ctx, ts)
if !strings.HasSuffix(apiURL, "/") {
apiURL += "/"
}
baseURL, err := url.Parse(apiURL)
if err != nil {
return ctx, nil, err
}
if !strings.HasSuffix(uploadURL, "/") {
uploadURL += "/"
}
uploadTargetURL, err := url.Parse(uploadURL)
2019-11-04 16:07:30 +01:00
if err != nil {
return ctx, nil, err
}
client := github.NewClient(tc)
client.BaseURL = baseURL
client.UploadURL = uploadTargetURL
2019-11-04 16:07:30 +01:00
return ctx, client, nil
}