From e64235c8b85561d9b944172deb00549b333afbf5 Mon Sep 17 00:00:00 2001 From: "hang.jiang" Date: Fri, 3 Mar 2023 14:19:01 +0800 Subject: [PATCH] support http proxy Signed-off-by: hang.jiang --- github/github.go | 5 +++++ github/github_test.go | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/github/github.go b/github/github.go index 4e0d2f47e8..58715b11c6 100644 --- a/github/github.go +++ b/github/github.go @@ -348,6 +348,11 @@ func NewClient(httpClient *http.Client) *Client { return c } +// NewClientWithEnvProxy enhances NewClient with the HttpProxy env. +func NewClientWithEnvProxy() *Client { + return NewClient(&http.Client{Transport: &http.Transport{Proxy: http.ProxyFromEnvironment}}) +} + // NewTokenClient returns a new GitHub API client authenticated with the provided token. func NewTokenClient(ctx context.Context, token string) *Client { return NewClient(oauth2.NewClient(ctx, oauth2.StaticTokenSource(&oauth2.Token{AccessToken: token}))) diff --git a/github/github_test.go b/github/github_test.go index 0c96940434..4a70649d61 100644 --- a/github/github_test.go +++ b/github/github_test.go @@ -264,6 +264,13 @@ func TestNewClient(t *testing.T) { } } +func TestNewClientWithEnvProxy(t *testing.T) { + client := NewClientWithEnvProxy() + if got, want := client.BaseURL.String(), defaultBaseURL; got != want { + t.Errorf("NewClient BaseURL is %v, want %v", got, want) + } +} + func TestClient(t *testing.T) { c := NewClient(nil) c2 := c.Client()