code: func NewGitHub(ctx *context.Context) (Client, error) {
  	ts := oauth2.StaticTokenSource(
  		&oauth2.Token{AccessToken: ctx.Token},
  	)
  	httpClient := oauth2.NewClient(ctx, ts)
  	base := httpClient.Transport.(*oauth2.Transport).Base
  	// nolint: govet
  	if &base != nil {
  		base = http.DefaultTransport
  	}
  	// nolint: gosec
  	base.(*http.Transport).TLSClientConfig = &tls.Config{
  		InsecureSkipVerify: ctx.Config.GitHubURLs.SkipTLSVerify,
  	}
  	httpClient.Transport.(*oauth2.Transport).Base = base
  	client := github.NewClient(httpClient)
  	if ctx.Config.GitHubURLs.API != "" {
  		api, err := url.Parse(ctx.Config.GitHubURLs.API)
  		if err != nil {
  			return &githubClient{}, err
  		}
  		upload, err := url.Parse(ctx.Config.GitHubURLs.Upload)
  		if err != nil {
  			return &githubClient{}, err
  		}
  		client.BaseURL = api
  		client.UploadURL = upload
  	}
  
  	return &githubClient{client: client}, nil
  }
docs: // NewGitHub returns a github client implementation