From 2d9734c3dad30b45b9db9eec442ac5f89e766f9b Mon Sep 17 00:00:00 2001 From: jose-ws <80274739+jose-ws@users.noreply.github.com> Date: Fri, 14 May 2021 11:27:02 -0400 Subject: [PATCH] feat(proxy): proxy environment variables available in lowercase for child processes. (#9978) --- lib/proxy.spec.ts | 26 ++++++++++++++++++++++++++ lib/proxy.ts | 4 ++++ lib/util/exec/env.ts | 3 +++ 3 files changed, 33 insertions(+) diff --git a/lib/proxy.spec.ts b/lib/proxy.spec.ts index c999ed909f..408b9a275d 100644 --- a/lib/proxy.spec.ts +++ b/lib/proxy.spec.ts @@ -7,7 +7,9 @@ describe('proxy', () => { beforeEach(() => { delete process.env.HTTP_PROXY; + delete process.env.http_proxy; delete process.env.HTTPS_PROXY; + delete process.env.https_proxy; delete process.env.NO_PROXY; delete process.env.no_proxy; }); @@ -17,11 +19,35 @@ describe('proxy', () => { bootstrap(); expect(hasProxy()).toBeTrue(); }); + it('copies upper case HTTP_PROXY to http_proxy', () => { + process.env.HTTP_PROXY = httpProxy; + bootstrap(); + expect(hasProxy()).toBeTrue(); + expect(process.env.HTTP_PROXY).toBeDefined(); + expect(process.env.http_proxy).toBeDefined(); + + expect(process.env.HTTPS_PROXY).toBeUndefined(); + expect(process.env.https_proxy).toBeUndefined(); + expect(process.env.NO_PROXY).toBeUndefined(); + expect(process.env.no_proxy).toBeUndefined(); + }); it('respects HTTPS_PROXY', () => { process.env.HTTPS_PROXY = httpsProxy; bootstrap(); expect(hasProxy()).toBeTrue(); }); + it('copies upper case HTTPS_PROXY to https_proxy', () => { + process.env.HTTPS_PROXY = httpsProxy; + bootstrap(); + expect(hasProxy()).toBeTrue(); + expect(process.env.HTTPS_PROXY).toBeDefined(); + expect(process.env.https_proxy).toBeDefined(); + + expect(process.env.HTTP_PROXY).toBeUndefined(); + expect(process.env.http_proxy).toBeUndefined(); + expect(process.env.NO_PROXY).toBeUndefined(); + expect(process.env.no_proxy).toBeUndefined(); + }); it('does nothing', () => { process.env.no_proxy = noProxy; bootstrap(); diff --git a/lib/proxy.ts b/lib/proxy.ts index a1f7ca6d61..cb577b55c3 100644 --- a/lib/proxy.ts +++ b/lib/proxy.ts @@ -14,6 +14,10 @@ export function bootstrap(): void { ) { process.env[envVar] = process.env[envVar.toLowerCase()]; } + + if (process.env[envVar]) { + process.env[envVar.toLowerCase()] = process.env[envVar]; + } }); if ( diff --git a/lib/util/exec/env.ts b/lib/util/exec/env.ts index faffd61bf8..480338560e 100644 --- a/lib/util/exec/env.ts +++ b/lib/util/exec/env.ts @@ -4,6 +4,9 @@ const basicEnvVars = [ 'HTTP_PROXY', 'HTTPS_PROXY', 'NO_PROXY', + 'http_proxy', + 'https_proxy', + 'no_proxy', 'HOME', 'PATH', 'LC_ALL', -- GitLab