From 71bc34b2d599a7097e0abf5a3e9d4fdad9f63c2e Mon Sep 17 00:00:00 2001 From: Tatyana Kostromskaya <32135588+takost@users.noreply.github.com> Date: Wed, 4 Oct 2023 09:30:46 +0000 Subject: [PATCH] . --- packages/core/package-lock.json | 2 +- .../github/__tests__/github.proxy.test.ts | 46 +- packages/github/__tests__/github.test.ts | 4 +- packages/github/package-lock.json | 771 ++++++++++-------- packages/github/package.json | 14 +- packages/github/src/internal/utils.ts | 14 +- .../http-client/actions-http-client-3.0.0.tgz | Bin 0 -> 16836 bytes packages/http-client/package-lock.json | 189 +++-- packages/http-client/package.json | 9 +- packages/http-client/src/index.ts | 107 ++- 10 files changed, 725 insertions(+), 431 deletions(-) create mode 100644 packages/http-client/actions-http-client-3.0.0.tgz diff --git a/packages/core/package-lock.json b/packages/core/package-lock.json index 3acf99cd..d86f7ef0 100644 --- a/packages/core/package-lock.json +++ b/packages/core/package-lock.json @@ -1,6 +1,6 @@ { "name": "@actions/core", - "version": "1.10.0", + "version": "1.10.1", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/github/__tests__/github.proxy.test.ts b/packages/github/__tests__/github.proxy.test.ts index 699ea8ec..d226fe9e 100644 --- a/packages/github/__tests__/github.proxy.test.ts +++ b/packages/github/__tests__/github.proxy.test.ts @@ -1,6 +1,5 @@ import * as http from 'http' import * as https from 'https' -import proxy from 'proxy' import { ProxyServer, createProxy } from "proxy"; import { ProxyAgent, fetch as undiciFetch } from "undici"; @@ -18,7 +17,7 @@ describe('@actions/github', () => { beforeAll(async () => { // Start proxy server - proxyServer = proxy() + proxyServer = createProxy() await new Promise(resolve => { const port = Number(proxyUrl.split(':')[2]) proxyServer.listen(port, () => resolve()) @@ -50,22 +49,7 @@ describe('@actions/github', () => { return } - const myFetch: typeof undiciFetch = (url, opts) => { - return undiciFetch(url, { - ...opts, - dispatcher: new ProxyAgent({ - uri: proxyUrl, - keepAliveTimeout: 10, - keepAliveMaxTimeout: 10, - }), - }); - }; - - const octokit = getOctokit(token, { - request: { - fetch: myFetch - } - }) + const octokit = getOctokit(token) const branch = await octokit.rest.repos.getBranch({ owner: 'actions', @@ -82,22 +66,18 @@ describe('@actions/github', () => { return } process.env['https_proxy'] = proxyUrl - const myFetch: typeof undiciFetch = (url, opts) => { - return undiciFetch(url, { - ...opts, - dispatcher: new ProxyAgent({ - uri: proxyUrl, - keepAliveTimeout: 10, - keepAliveMaxTimeout: 10, - }), - }); - }; + // const myFetch: typeof undiciFetch = (url, opts) => { + // return undiciFetch(url, { + // ...opts, + // dispatcher: new ProxyAgent({ + // uri: proxyUrl, + // keepAliveTimeout: 10, + // keepAliveMaxTimeout: 10, + // }), + // }); + // }; - const octokit = getOctokit(token, { - request: { - fetch: myFetch - } - }) + const octokit = getOctokit(token) const repository = await octokit.graphql( '{repository(owner:"actions", name:"toolkit"){name}}' diff --git a/packages/github/__tests__/github.test.ts b/packages/github/__tests__/github.test.ts index 1a68d58d..2ba3f0c2 100644 --- a/packages/github/__tests__/github.test.ts +++ b/packages/github/__tests__/github.test.ts @@ -1,5 +1,5 @@ import * as http from 'http' -import proxy from 'proxy' +import { createProxy } from 'proxy' import {getOctokit} from '../src/github' import {GitHub, getOctokitOptions} from '../src/utils' @@ -12,7 +12,7 @@ describe('@actions/github', () => { beforeAll(async () => { // Start proxy server - proxyServer = proxy() + proxyServer = createProxy() await new Promise(resolve => { const port = Number(proxyUrl.split(':')[2]) proxyServer.listen(port, () => resolve()) diff --git a/packages/github/package-lock.json b/packages/github/package-lock.json index 59569cc3..4e44b638 100644 --- a/packages/github/package-lock.json +++ b/packages/github/package-lock.json @@ -9,140 +9,177 @@ "version": "5.1.1", "license": "MIT", "dependencies": { - "@actions/http-client": "^2.0.1", - "@octokit/core": "^3.6.0", - "@octokit/plugin-paginate-rest": "^2.17.0", - "@octokit/plugin-rest-endpoint-methods": "^5.13.0" + "@actions/http-client": "file:../http-client/actions-http-client-3.0.0.tgz", + "@octokit/core": "^4.2.4", + "@octokit/plugin-paginate-rest": "^6.1.2", + "@octokit/plugin-rest-endpoint-methods": "^7.2.3" }, "devDependencies": { - "proxy": "^1.0.2" + "@types/proxy": "^1.0.1", + "proxy": "^2.1.1", + "undici": "^5.25.2" } }, "node_modules/@actions/http-client": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.1.0.tgz", - "integrity": "sha512-BonhODnXr3amchh4qkmjPMUO8mFi/zLaaCeCAJZqch8iQqyDnVIkySjB38VHAC8IJ+bnlgfOqlhpyCUZHlQsqw==", + "version": "3.0.0", + "resolved": "file:../http-client/actions-http-client-3.0.0.tgz", + "integrity": "sha512-HiloxFqJ4f0Z34H7pcqYcYb+UK+CqUKJmNY245AITh9HyJMvLz9wCrb5J+UWO6S63klrJBnzYBguTNUYrbCNrQ==", + "license": "MIT", "dependencies": { "tunnel": "^0.0.6" } }, "node_modules/@octokit/auth-token": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.5.tgz", - "integrity": "sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==", - "dependencies": { - "@octokit/types": "^6.0.3" + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz", + "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==", + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz", + "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==", "dependencies": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/endpoint": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.11.tgz", - "integrity": "sha512-fUIPpx+pZyoLW4GCs3yMnlj2LfoXTWDUVPTC4V3MUEKZm48W+XYpeWSZCv+vYF1ZABUm2CqnDVf1sFtIYrj7KQ==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", "dependencies": { - "@octokit/types": "^6.0.3", + "@octokit/types": "^9.0.0", "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/graphql": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.6.1.tgz", - "integrity": "sha512-2lYlvf4YTDgZCTXTW4+OX+9WTLFtEUc6hGm4qM1nlZjzxj+arizM4aHWzBVBCxY9glh7GIs0WEuiSgbVzv8cmA==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz", + "integrity": "sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==", "dependencies": { - "@octokit/request": "^5.3.0", - "@octokit/types": "^6.0.3", + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/openapi-types": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz", - "integrity": "sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==" + "version": "18.1.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.1.1.tgz", + "integrity": "sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==" }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz", - "integrity": "sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz", + "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==", "dependencies": { - "@octokit/types": "^6.34.0" + "@octokit/tsconfig": "^1.0.2", + "@octokit/types": "^9.2.3" + }, + "engines": { + "node": ">= 14" }, "peerDependencies": { - "@octokit/core": ">=2" + "@octokit/core": ">=4" } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz", - "integrity": "sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz", + "integrity": "sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==", "dependencies": { - "@octokit/types": "^6.34.0", - "deprecation": "^2.3.1" + "@octokit/types": "^10.0.0" + }, + "engines": { + "node": ">= 14" }, "peerDependencies": { "@octokit/core": ">=3" } }, - "node_modules/@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz", + "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==", "dependencies": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/@octokit/request": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", + "dependencies": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", "is-plain-object": "^5.0.0", "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", "dependencies": { - "@octokit/types": "^6.0.3", + "@octokit/types": "^9.0.0", "deprecation": "^2.0.0", "once": "^1.4.0" - } - }, - "node_modules/@octokit/types": { - "version": "6.34.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz", - "integrity": "sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==", - "dependencies": { - "@octokit/openapi-types": "^11.2.0" - } - }, - "node_modules/args": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", - "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", - "dev": true, - "dependencies": { - "camelcase": "5.0.0", - "chalk": "2.4.2", - "leven": "2.1.0", - "mri": "1.1.4" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 14" } }, - "node_modules/args/node_modules/ansi-styles": { + "node_modules/@octokit/tsconfig": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz", + "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==" + }, + "node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/@types/node": { + "version": "20.7.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.7.1.tgz", + "integrity": "sha512-LT+OIXpp2kj4E2S/p91BMe+VgGX2+lfO+XTpfXhh+bCk2LkQtHZSub8ewFBMGP5ClysPjTDFa4sMI8Q3n4T0wg==", + "dev": true + }, + "node_modules/@types/proxy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/proxy/-/proxy-1.0.2.tgz", + "integrity": "sha512-NDNsg7YuClVzEenn9SUButu43blypWvljGsIkDV7HI4N9apjrS0aeeMTUG0PYa71lD1AvIgvjkBagqHDiomDjA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", @@ -154,7 +191,45 @@ "node": ">=4" } }, - "node_modules/args/node_modules/camelcase": { + "node_modules/args": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.3.tgz", + "integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==", + "dev": true, + "dependencies": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/basic-auth-parser": { + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/basic-auth-parser/-/basic-auth-parser-0.0.2-1.tgz", + "integrity": "sha512-GFj8iVxo9onSU6BnnQvVwqvxh60UcSHJEDnIk3z4B6iOjsKSmqe+ibW0Rsz7YO7IE1HG3D3tqCNIidP46SZVdQ==", + "dev": true + }, + "node_modules/before-after-hook": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.1.tgz", + "integrity": "sha512-/6FKxSTWoJdbsLDF8tdIjaRiFXiE6UHsEHE3OPI/cwPURCVi1ukP0gmLn7XWEiFk5TcwQjjY5PWsU+j+tgXgmw==" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/camelcase": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", @@ -163,7 +238,7 @@ "node": ">=6" } }, - "node_modules/args/node_modules/chalk": { + "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", @@ -177,7 +252,7 @@ "node": ">=4" } }, - "node_modules/args/node_modules/color-convert": { + "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", @@ -186,61 +261,27 @@ "color-name": "1.1.3" } }, - "node_modules/args/node_modules/color-name": { + "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "node_modules/args/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/args/node_modules/leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/args/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/basic-auth-parser": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/basic-auth-parser/-/basic-auth-parser-0.0.2.tgz", - "integrity": "sha1-zp5xp38jwSee7NJlmypGJEwVbkE=", - "dev": true - }, - "node_modules/before-after-hook": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.1.tgz", - "integrity": "sha512-/6FKxSTWoJdbsLDF8tdIjaRiFXiE6UHsEHE3OPI/cwPURCVi1ukP0gmLn7XWEiFk5TcwQjjY5PWsU+j+tgXgmw==" - }, "node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/deprecation": { @@ -251,12 +292,21 @@ "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" } }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", @@ -265,6 +315,15 @@ "node": ">=0.10.0" } }, + "node_modules/leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/mri": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", @@ -281,9 +340,9 @@ "dev": true }, "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -299,47 +358,54 @@ } } }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dependencies": { "wrappy": "1" } }, "node_modules/proxy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/proxy/-/proxy-1.0.2.tgz", - "integrity": "sha512-KNac2ueWRpjbUh77OAFPZuNdfEqNynm9DD4xHT14CccGpW8wKZwEkN0yjlb7X9G9Z9F55N0Q+1z+WfgAhwYdzQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/proxy/-/proxy-2.1.1.tgz", + "integrity": "sha512-nLgd7zdUAOpB3ZO/xCkU8gy74UER7P0aihU8DkUsDS5ZoFwVCX7u8dy+cv5tVK8UaB/yminU1GiLWE26TKPYpg==", "dev": true, "dependencies": { - "args": "5.0.1", - "basic-auth-parser": "0.0.2", - "debug": "^4.1.1" + "args": "^5.0.3", + "basic-auth-parser": "0.0.2-1", + "debug": "^4.3.4" }, - "bin": { - "proxy": "bin/proxy.js" + "engines": { + "node": ">= 14" } }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, "node_modules/tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", @@ -349,9 +415,10 @@ } }, "node_modules/undici": { - "version": "5.25.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.25.1.tgz", - "integrity": "sha512-nTw6b2G2OqP6btYPyghCgV4hSwjJlL/78FMJatVLCa3otj6PCOQSt6dVtYt82OtNqFz8XsnJ+vsXLADPXjPhqw==", + "version": "5.25.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.25.2.tgz", + "integrity": "sha512-tch8RbCfn1UUH1PeVCXva4V8gDpGAud/w0WubD6sHC46vYQ3KDxL+xv1A2UxK0N6jrVedutuPHxe1XIoqerwMw==", + "dev": true, "dependencies": { "busboy": "^1.6.0" }, @@ -364,196 +431,181 @@ "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" } }, "dependencies": { "@actions/http-client": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.1.0.tgz", - "integrity": "sha512-BonhODnXr3amchh4qkmjPMUO8mFi/zLaaCeCAJZqch8iQqyDnVIkySjB38VHAC8IJ+bnlgfOqlhpyCUZHlQsqw==", + "version": "file:../http-client/actions-http-client-3.0.0.tgz", + "integrity": "sha512-HiloxFqJ4f0Z34H7pcqYcYb+UK+CqUKJmNY245AITh9HyJMvLz9wCrb5J+UWO6S63klrJBnzYBguTNUYrbCNrQ==", "requires": { "tunnel": "^0.0.6" } }, "@octokit/auth-token": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.5.tgz", - "integrity": "sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==", - "requires": { - "@octokit/types": "^6.0.3" - } + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz", + "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==" }, "@octokit/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz", + "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==", "requires": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" } }, "@octokit/endpoint": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.11.tgz", - "integrity": "sha512-fUIPpx+pZyoLW4GCs3yMnlj2LfoXTWDUVPTC4V3MUEKZm48W+XYpeWSZCv+vYF1ZABUm2CqnDVf1sFtIYrj7KQ==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", "requires": { - "@octokit/types": "^6.0.3", + "@octokit/types": "^9.0.0", "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" } }, "@octokit/graphql": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.6.1.tgz", - "integrity": "sha512-2lYlvf4YTDgZCTXTW4+OX+9WTLFtEUc6hGm4qM1nlZjzxj+arizM4aHWzBVBCxY9glh7GIs0WEuiSgbVzv8cmA==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz", + "integrity": "sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==", "requires": { - "@octokit/request": "^5.3.0", - "@octokit/types": "^6.0.3", + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", "universal-user-agent": "^6.0.0" } }, "@octokit/openapi-types": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz", - "integrity": "sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==" + "version": "18.1.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.1.1.tgz", + "integrity": "sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==" }, "@octokit/plugin-paginate-rest": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz", - "integrity": "sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz", + "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==", "requires": { - "@octokit/types": "^6.34.0" + "@octokit/tsconfig": "^1.0.2", + "@octokit/types": "^9.2.3" } }, "@octokit/plugin-rest-endpoint-methods": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz", - "integrity": "sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz", + "integrity": "sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==", "requires": { - "@octokit/types": "^6.34.0", - "deprecation": "^2.3.1" + "@octokit/types": "^10.0.0" + }, + "dependencies": { + "@octokit/types": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz", + "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==", + "requires": { + "@octokit/openapi-types": "^18.0.0" + } + } } }, "@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", "requires": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", "is-plain-object": "^5.0.0", "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" } }, "@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", "requires": { - "@octokit/types": "^6.0.3", + "@octokit/types": "^9.0.0", "deprecation": "^2.0.0", "once": "^1.4.0" } }, + "@octokit/tsconfig": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz", + "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==" + }, "@octokit/types": { - "version": "6.34.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz", - "integrity": "sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", "requires": { - "@octokit/openapi-types": "^11.2.0" + "@octokit/openapi-types": "^18.0.0" + } + }, + "@types/node": { + "version": "20.7.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.7.1.tgz", + "integrity": "sha512-LT+OIXpp2kj4E2S/p91BMe+VgGX2+lfO+XTpfXhh+bCk2LkQtHZSub8ewFBMGP5ClysPjTDFa4sMI8Q3n4T0wg==", + "dev": true + }, + "@types/proxy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/proxy/-/proxy-1.0.2.tgz", + "integrity": "sha512-NDNsg7YuClVzEenn9SUButu43blypWvljGsIkDV7HI4N9apjrS0aeeMTUG0PYa71lD1AvIgvjkBagqHDiomDjA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" } }, "args": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", - "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.3.tgz", + "integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==", "dev": true, "requires": { "camelcase": "5.0.0", "chalk": "2.4.2", "leven": "2.1.0", "mri": "1.1.4" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } } }, "basic-auth-parser": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/basic-auth-parser/-/basic-auth-parser-0.0.2.tgz", - "integrity": "sha1-zp5xp38jwSee7NJlmypGJEwVbkE=", + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/basic-auth-parser/-/basic-auth-parser-0.0.2-1.tgz", + "integrity": "sha512-GFj8iVxo9onSU6BnnQvVwqvxh60UcSHJEDnIk3z4B6iOjsKSmqe+ibW0Rsz7YO7IE1HG3D3tqCNIidP46SZVdQ==", "dev": true }, "before-after-hook": { @@ -561,13 +613,54 @@ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.1.tgz", "integrity": "sha512-/6FKxSTWoJdbsLDF8tdIjaRiFXiE6UHsEHE3OPI/cwPURCVi1ukP0gmLn7XWEiFk5TcwQjjY5PWsU+j+tgXgmw==" }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", "dev": true, "requires": { - "ms": "^2.1.1" + "streamsearch": "^1.1.0" + } + }, + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" } }, "deprecation": { @@ -578,7 +671,13 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, "is-plain-object": { @@ -586,6 +685,12 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", + "dev": true + }, "mri": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", @@ -599,62 +704,62 @@ "dev": true }, "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "requires": { "whatwg-url": "^5.0.0" - }, - "dependencies": { - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } } }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "requires": { "wrappy": "1" } }, "proxy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/proxy/-/proxy-1.0.2.tgz", - "integrity": "sha512-KNac2ueWRpjbUh77OAFPZuNdfEqNynm9DD4xHT14CccGpW8wKZwEkN0yjlb7X9G9Z9F55N0Q+1z+WfgAhwYdzQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/proxy/-/proxy-2.1.1.tgz", + "integrity": "sha512-nLgd7zdUAOpB3ZO/xCkU8gy74UER7P0aihU8DkUsDS5ZoFwVCX7u8dy+cv5tVK8UaB/yminU1GiLWE26TKPYpg==", "dev": true, "requires": { - "args": "5.0.1", - "basic-auth-parser": "0.0.2", - "debug": "^4.1.1" + "args": "^5.0.3", + "basic-auth-parser": "0.0.2-1", + "debug": "^4.3.4" } }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, "tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" }, "undici": { - "version": "5.25.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.25.1.tgz", - "integrity": "sha512-nTw6b2G2OqP6btYPyghCgV4hSwjJlL/78FMJatVLCa3otj6PCOQSt6dVtYt82OtNqFz8XsnJ+vsXLADPXjPhqw==", + "version": "5.25.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.25.2.tgz", + "integrity": "sha512-tch8RbCfn1UUH1PeVCXva4V8gDpGAud/w0WubD6sHC46vYQ3KDxL+xv1A2UxK0N6jrVedutuPHxe1XIoqerwMw==", + "dev": true, "requires": { "busboy": "^1.6.0" } @@ -664,10 +769,24 @@ "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" } } } diff --git a/packages/github/package.json b/packages/github/package.json index 8c5512ef..31e84d33 100644 --- a/packages/github/package.json +++ b/packages/github/package.json @@ -38,12 +38,14 @@ "url": "https://github.com/actions/toolkit/issues" }, "dependencies": { - "@actions/http-client": "^2.0.1", - "@octokit/core": "^3.6.0", - "@octokit/plugin-paginate-rest": "^2.17.0", - "@octokit/plugin-rest-endpoint-methods": "^5.13.0" + "@actions/http-client": "file:../http-client/actions-http-client-3.0.0.tgz", + "@octokit/core": "^4.2.4", + "@octokit/plugin-paginate-rest": "^6.1.2", + "@octokit/plugin-rest-endpoint-methods": "^7.2.3" }, "devDependencies": { - "proxy": "^1.0.2" + "@types/proxy": "^1.0.1", + "proxy": "^2.1.1", + "undici": "^5.25.2" } -} \ No newline at end of file +} diff --git a/packages/github/src/internal/utils.ts b/packages/github/src/internal/utils.ts index 8efbd6ee..09e409e2 100644 --- a/packages/github/src/internal/utils.ts +++ b/packages/github/src/internal/utils.ts @@ -2,7 +2,7 @@ import * as http from 'http' import * as httpClient from '@actions/http-client' import {OctokitOptions} from '@octokit/core/dist-types/types' import { ProxyServer, createProxy } from "proxy"; -import { ProxyAgent, fetch as undiciFetch } from "undici"; +import { ProxyAgent, Agent, fetch as undiciFetch } from "undici"; export function getAuthString( token: string, @@ -22,15 +22,17 @@ export function getProxyAgent(destinationUrl: string): http.Agent { return hc.getAgent(destinationUrl) } +export function getNewProxyAgent(destinationUrl: string): ProxyAgent | Agent { + const hc = new httpClient.HttpClient() + return hc.getNewAgent(destinationUrl) +} + export function getProxyFetchAgent(destinationUrl): any { + const httpAgent = getNewProxyAgent(destinationUrl) const myFetch: typeof undiciFetch = (url, opts) => { return undiciFetch(url, { ...opts, - dispatcher: new ProxyAgent({ - uri: destinationUrl, - keepAliveTimeout: 10, - keepAliveMaxTimeout: 10, - }), + dispatcher: httpAgent, }); }; return myFetch; diff --git a/packages/http-client/actions-http-client-3.0.0.tgz b/packages/http-client/actions-http-client-3.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0e5ac8fec91c03c81d10d52e6857a30be42e889c GIT binary patch literal 16836 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ð$(@vZm(}C^^OA>5c%E&ksP-nVx#!sC?t&euH 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 D{vaEg literal 0 HcmV?d00001 diff --git a/packages/http-client/package-lock.json b/packages/http-client/package-lock.json index 503a680a..88282c0a 100644 --- a/packages/http-client/package-lock.json +++ b/packages/http-client/package-lock.json @@ -1,27 +1,39 @@ { "name": "@actions/http-client", - "version": "2.1.1", + "version": "3.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@actions/http-client", - "version": "2.1.1", + "version": "3.0.0", "license": "MIT", "dependencies": { "tunnel": "^0.0.6" }, "devDependencies": { + "@types/node": "^20.7.1", + "@types/proxy": "^1.0.2", "@types/tunnel": "0.0.3", - "proxy": "^1.0.1" + "proxy": "^2.1.1", + "undici": "^5.25.2" } }, "node_modules/@types/node": { - "version": "12.12.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.31.tgz", - "integrity": "sha512-T+wnJno8uh27G9c+1T+a1/WYCHzLeDqtsGJkoEdSp2X8RTh3oOCZQcUnjAx90CS8cmmADX51O0FI/tu9s0yssg==", + "version": "20.7.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.7.1.tgz", + "integrity": "sha512-LT+OIXpp2kj4E2S/p91BMe+VgGX2+lfO+XTpfXhh+bCk2LkQtHZSub8ewFBMGP5ClysPjTDFa4sMI8Q3n4T0wg==", "dev": true }, + "node_modules/@types/proxy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/proxy/-/proxy-1.0.2.tgz", + "integrity": "sha512-NDNsg7YuClVzEenn9SUButu43blypWvljGsIkDV7HI4N9apjrS0aeeMTUG0PYa71lD1AvIgvjkBagqHDiomDjA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/tunnel": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz", @@ -44,9 +56,9 @@ } }, "node_modules/args": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", - "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.3.tgz", + "integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==", "dev": true, "dependencies": { "camelcase": "5.0.0", @@ -59,11 +71,23 @@ } }, "node_modules/basic-auth-parser": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/basic-auth-parser/-/basic-auth-parser-0.0.2.tgz", - "integrity": "sha1-zp5xp38jwSee7NJlmypGJEwVbkE=", + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/basic-auth-parser/-/basic-auth-parser-0.0.2-1.tgz", + "integrity": "sha512-GFj8iVxo9onSU6BnnQvVwqvxh60UcSHJEDnIk3z4B6iOjsKSmqe+ibW0Rsz7YO7IE1HG3D3tqCNIidP46SZVdQ==", "dev": true }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, "node_modules/camelcase": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", @@ -99,23 +123,30 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -124,7 +155,7 @@ "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" @@ -133,7 +164,7 @@ "node_modules/leven": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -155,17 +186,26 @@ "dev": true }, "node_modules/proxy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/proxy/-/proxy-1.0.2.tgz", - "integrity": "sha512-KNac2ueWRpjbUh77OAFPZuNdfEqNynm9DD4xHT14CccGpW8wKZwEkN0yjlb7X9G9Z9F55N0Q+1z+WfgAhwYdzQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/proxy/-/proxy-2.1.1.tgz", + "integrity": "sha512-nLgd7zdUAOpB3ZO/xCkU8gy74UER7P0aihU8DkUsDS5ZoFwVCX7u8dy+cv5tVK8UaB/yminU1GiLWE26TKPYpg==", "dev": true, "dependencies": { - "args": "5.0.1", - "basic-auth-parser": "0.0.2", - "debug": "^4.1.1" + "args": "^5.0.3", + "basic-auth-parser": "0.0.2-1", + "debug": "^4.3.4" }, - "bin": { - "proxy": "bin/proxy.js" + "engines": { + "node": ">= 14" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true, + "engines": { + "node": ">=10.0.0" } }, "node_modules/supports-color": { @@ -187,15 +227,36 @@ "engines": { "node": ">=0.6.11 <=0.7.0 || >=0.7.3" } + }, + "node_modules/undici": { + "version": "5.25.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.25.2.tgz", + "integrity": "sha512-tch8RbCfn1UUH1PeVCXva4V8gDpGAud/w0WubD6sHC46vYQ3KDxL+xv1A2UxK0N6jrVedutuPHxe1XIoqerwMw==", + "dev": true, + "dependencies": { + "busboy": "^1.6.0" + }, + "engines": { + "node": ">=14.0" + } } }, "dependencies": { "@types/node": { - "version": "12.12.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.31.tgz", - "integrity": "sha512-T+wnJno8uh27G9c+1T+a1/WYCHzLeDqtsGJkoEdSp2X8RTh3oOCZQcUnjAx90CS8cmmADX51O0FI/tu9s0yssg==", + "version": "20.7.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.7.1.tgz", + "integrity": "sha512-LT+OIXpp2kj4E2S/p91BMe+VgGX2+lfO+XTpfXhh+bCk2LkQtHZSub8ewFBMGP5ClysPjTDFa4sMI8Q3n4T0wg==", "dev": true }, + "@types/proxy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/proxy/-/proxy-1.0.2.tgz", + "integrity": "sha512-NDNsg7YuClVzEenn9SUButu43blypWvljGsIkDV7HI4N9apjrS0aeeMTUG0PYa71lD1AvIgvjkBagqHDiomDjA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/tunnel": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz", @@ -215,9 +276,9 @@ } }, "args": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", - "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.3.tgz", + "integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==", "dev": true, "requires": { "camelcase": "5.0.0", @@ -227,11 +288,20 @@ } }, "basic-auth-parser": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/basic-auth-parser/-/basic-auth-parser-0.0.2.tgz", - "integrity": "sha1-zp5xp38jwSee7NJlmypGJEwVbkE=", + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/basic-auth-parser/-/basic-auth-parser-0.0.2-1.tgz", + "integrity": "sha512-GFj8iVxo9onSU6BnnQvVwqvxh60UcSHJEDnIk3z4B6iOjsKSmqe+ibW0Rsz7YO7IE1HG3D3tqCNIidP46SZVdQ==", "dev": true }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "requires": { + "streamsearch": "^1.1.0" + } + }, "camelcase": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", @@ -261,34 +331,34 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, "leven": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", "dev": true }, "mri": { @@ -304,16 +374,22 @@ "dev": true }, "proxy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/proxy/-/proxy-1.0.2.tgz", - "integrity": "sha512-KNac2ueWRpjbUh77OAFPZuNdfEqNynm9DD4xHT14CccGpW8wKZwEkN0yjlb7X9G9Z9F55N0Q+1z+WfgAhwYdzQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/proxy/-/proxy-2.1.1.tgz", + "integrity": "sha512-nLgd7zdUAOpB3ZO/xCkU8gy74UER7P0aihU8DkUsDS5ZoFwVCX7u8dy+cv5tVK8UaB/yminU1GiLWE26TKPYpg==", "dev": true, "requires": { - "args": "5.0.1", - "basic-auth-parser": "0.0.2", - "debug": "^4.1.1" + "args": "^5.0.3", + "basic-auth-parser": "0.0.2-1", + "debug": "^4.3.4" } }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -327,6 +403,15 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + }, + "undici": { + "version": "5.25.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.25.2.tgz", + "integrity": "sha512-tch8RbCfn1UUH1PeVCXva4V8gDpGAud/w0WubD6sHC46vYQ3KDxL+xv1A2UxK0N6jrVedutuPHxe1XIoqerwMw==", + "dev": true, + "requires": { + "busboy": "^1.6.0" + } } } } diff --git a/packages/http-client/package.json b/packages/http-client/package.json index f0c747bd..5590933a 100644 --- a/packages/http-client/package.json +++ b/packages/http-client/package.json @@ -1,6 +1,6 @@ { "name": "@actions/http-client", - "version": "2.1.1", + "version": "3.0.0", "description": "Actions Http Client", "keywords": [ "github", @@ -39,10 +39,13 @@ "url": "https://github.com/actions/toolkit/issues" }, "devDependencies": { + "@types/node": "^20.7.1", + "@types/proxy": "^1.0.2", "@types/tunnel": "0.0.3", - "proxy": "^1.0.1" + "proxy": "^2.1.1", + "undici": "^5.25.2" }, "dependencies": { "tunnel": "^0.0.6" } -} \ No newline at end of file +} diff --git a/packages/http-client/src/index.ts b/packages/http-client/src/index.ts index a63e61b7..29df1959 100644 --- a/packages/http-client/src/index.ts +++ b/packages/http-client/src/index.ts @@ -6,6 +6,7 @@ import * as ifm from './interfaces' import * as net from 'net' import * as pm from './proxy' import * as tunnel from 'tunnel' +import { ProxyAgent, Agent, fetch as undiciFetch } from "undici"; export enum HttpCodes { OK = 200, @@ -136,7 +137,9 @@ export class HttpClient { private _allowRetries = false private _maxRetries = 1 private _agent: any + private _newAgent: any private _proxyAgent: any + private _newProxyAgent: any private _keepAlive = false private _disposed = false @@ -564,6 +567,18 @@ export class HttpClient { return this._getAgent(parsedUrl) } + getNewAgent(serverUrl: string): ProxyAgent | Agent { + const parsedUrl = new URL(serverUrl) + const proxyUrl = pm.getProxyUrl(parsedUrl) + const useProxy = proxyUrl && proxyUrl.hostname + if (useProxy) { + return this._getProxyAgent(parsedUrl) + } + else { + return this._getNewAgent(parsedUrl) + } + } + private _prepareRequest( method: string, requestUrl: URL, @@ -679,7 +694,7 @@ export class HttpClient { // if reusing agent across request and tunneling agent isn't assigned create a new agent if (this._keepAlive && !agent) { - const options = {keepAlive: this._keepAlive, maxSockets} + const options = { keepAlive: this._keepAlive, maxSockets } agent = usingSsl ? new https.Agent(options) : new http.Agent(options) this._agent = agent } @@ -701,6 +716,94 @@ export class HttpClient { return agent } + private _getProxyAgent(parsedUrl: URL): ProxyAgent { + let proxyAgent + const proxyUrl = pm.getProxyUrl(parsedUrl) + const useProxy = proxyUrl && proxyUrl.hostname + + if (this._keepAlive && useProxy) { + proxyAgent = this._newProxyAgent + } + + if (this._keepAlive && !useProxy) { + proxyAgent = this._newAgent + } + + // if agent is already assigned use that agent. + if (proxyAgent) { + return proxyAgent + } + + const usingSsl = parsedUrl.protocol === 'https:' + let maxSockets = 100 + if (this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets + } + + // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis. + if (proxyUrl && proxyUrl.hostname) { + proxyAgent = new ProxyAgent({ + uri: proxyUrl.href, + pipelining: (!this._keepAlive ? 0 : 1), + ...((proxyUrl.username || proxyUrl.password) && { + token: `${proxyUrl.username}:${proxyUrl.password}` + }), + }) + this._newProxyAgent = proxyAgent + } + + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + proxyAgent.options = Object.assign(proxyAgent.options.requestTls || {}, { + rejectUnauthorized: false + }) + } + + return proxyAgent + } + + private _getNewAgent(parsedUrl: URL): Agent { + let agent; + + if (this._keepAlive) { + agent = this._newAgent + } + + // if agent is already assigned use that agent. + if (agent) { + return agent + } + + const usingSsl = parsedUrl.protocol === 'https:' + let maxSockets = 100 + if (this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets + } + + // if reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + agent = new Agent( + { + pipelining: (!this._keepAlive ? 0 : 1), + } + ) + this._newAgent = agent + } + + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options.connect || {}, { + rejectUnauthorized: false + }) + } + + return agent + } + private async _performExponentialBackoff(retryNumber: number): Promise { retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber) const ms: number = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber) @@ -783,5 +886,5 @@ export class HttpClient { } } -const lowercaseKeys = (obj: {[index: string]: any}): any => +const lowercaseKeys = (obj: { [index: string]: any }): any => Object.keys(obj).reduce((c: any, k) => ((c[k.toLowerCase()] = obj[k]), c), {})