From 475b4f96d239d5af52bc9e57efa9ddffbee0c4a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Scha=CC=88fer?= <101886095+PeterSchafer@users.noreply.github.com> Date: Mon, 28 Aug 2023 11:33:10 +0200 Subject: [PATCH] fix: restore system proxy --- lib/dependencies/sub-process.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/dependencies/sub-process.ts b/lib/dependencies/sub-process.ts index f82b058b..20078ef6 100644 --- a/lib/dependencies/sub-process.ts +++ b/lib/dependencies/sub-process.ts @@ -7,13 +7,29 @@ interface ProcessOptions { } function makeSpawnOptions(options?: ProcessOptions) { - const spawnOptions: SpawnOptions = { shell: true }; + const spawnOptions: SpawnOptions = { + shell: true, + env: { ...process.env }, + }; if (options && options.cwd) { spawnOptions.cwd = options.cwd; } if (options && options.env) { spawnOptions.env = options.env; } + + // Before spawning an external process, we look if we need to restore the system proxy configuration, + // which overides the cli internal proxy configuration. + if (process.env.SNYK_SYSTEM_HTTP_PROXY !== undefined) { + spawnOptions.env.HTTP_PROXY = process.env.SNYK_SYSTEM_HTTP_PROXY; + } + if (process.env.SNYK_SYSTEM_HTTPS_PROXY !== undefined) { + spawnOptions.env.HTTPS_PROXY = process.env.SNYK_SYSTEM_HTTPS_PROXY; + } + if (process.env.SNYK_SYSTEM_NO_PROXY !== undefined) { + spawnOptions.env.NO_PROXY = process.env.SNYK_SYSTEM_NO_PROXY; + } + return spawnOptions; }