From dce0ab05f36f30b22fd14289fd36655c618e4e8e Mon Sep 17 00:00:00 2001 From: Parker Brown <17183625+parkerbxyz@users.noreply.github.com> Date: Fri, 22 Aug 2025 12:16:16 -0700 Subject: [PATCH] fix: remove custom proxy handling (#143) Undici has added native support for proxy handling, so it is no longer necessary for us to have our own custom proxy handling. Reverts #102 and resolves #134. (cherry picked from commit cda91bf2b93cf1d3306b458b2a4f7fcd9de9175f) --- lib/request.js | 36 +++------------------------------- package.json | 4 ++-- tests/snapshots/index.js.snap | Bin 1388 -> 1392 bytes 3 files changed, 5 insertions(+), 35 deletions(-) diff --git a/lib/request.js b/lib/request.js index e68566d..f35d330 100644 --- a/lib/request.js +++ b/lib/request.js @@ -1,41 +1,11 @@ import * as core from "@actions/core"; import { request } from "@octokit/request"; -import { ProxyAgent, fetch as undiciFetch } from "undici"; +// Get the GitHub API URL from the action input and remove any trailing slash const baseUrl = core.getInput("github-api-url").replace(/\/$/, ""); -// https://docs.github.com/actions/hosting-your-own-runners/managing-self-hosted-runners/using-a-proxy-server-with-self-hosted-runners -const proxyUrl = - process.env.https_proxy || - process.env.HTTPS_PROXY || - process.env.http_proxy || - process.env.HTTP_PROXY; - -/* c8 ignore start */ -// Native support for proxies in Undici is under consideration: https://github.com/nodejs/undici/issues/1650 -// Until then, we need to use a custom fetch function to add proxy support. -const proxyFetch = (url, options) => { - const urlHost = new URL(url).hostname; - const noProxy = (process.env.no_proxy || process.env.NO_PROXY || "").split( - ",", - ); - - if (!noProxy.includes(urlHost)) { - options = { - ...options, - dispatcher: new ProxyAgent(String(proxyUrl)), - }; - } - - return undiciFetch(url, options); -}; -/* c8 ignore stop */ - +// Configure the default settings for GitHub API requests export default request.defaults({ - headers: { - "user-agent": "actions/create-github-app-token", - }, + headers: { "user-agent": "actions/create-github-app-token" }, baseUrl, - /* c8 ignore next */ - request: proxyUrl ? { fetch: proxyFetch } : {}, }); diff --git a/package.json b/package.json index dae3b18..fd96e2d 100644 --- a/package.json +++ b/package.json @@ -19,8 +19,7 @@ "@actions/core": "^3.0.0", "@octokit/auth-app": "^8.2.0", "@octokit/request": "^10.0.8", - "p-retry": "^7.1.1", - "undici": "^7.24.1" + "p-retry": "^7.1.1" }, "devDependencies": { "@octokit/openapi": "^21.0.0", @@ -31,6 +30,7 @@ "esbuild": "^0.27.3", "execa": "^9.6.1", "open-cli": "^8.0.0", + "undici": "^7.24.1", "yaml": "^2.8.2" }, "release": { diff --git a/tests/snapshots/index.js.snap b/tests/snapshots/index.js.snap index 773f4b18b4e1aa064fd7944d242c0276c527e30b..e66c3d55e1416e7ac7aff4b1d2b5c4e6ce80213f 100644 GIT binary patch literal 1392 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