Move proxy setup to request.js and update entrypoint

Proxy environment setup previously in bootstrap.js is now handled in lib/request.js for better encapsulation. The action entrypoint is updated from dist/bootstrap.cjs to dist/main.cjs, and bootstrap.js is removed. Build script is updated to exclude bootstrap.js.
This commit is contained in:
Parker Brown
2025-08-22 13:43:20 -07:00
parent 00ba6edc66
commit f57ea8787c
4 changed files with 24 additions and 9 deletions
+1 -1
View File
@@ -133,5 +133,5 @@ outputs:
description: "GitHub App slug"
runs:
using: "node24"
main: "dist/bootstrap.cjs"
main: "dist/main.cjs"
post: "dist/post.cjs"
-7
View File
@@ -1,7 +0,0 @@
// Enable env-based proxy support unless caller explicitly set NODE_USE_ENV_PROXY
if (process.env.NODE_USE_ENV_PROXY == null) {
process.env.NODE_USE_ENV_PROXY = 1;
}
// Import main after environment prepared. Using dynamic import so this executes first even when bundled.
import("./main.js");
+22
View File
@@ -1,6 +1,28 @@
import core from "@actions/core";
import { request } from "@octokit/request";
/* c8 ignore start -- proxy setup depends on external runner env */
// Ensure env-based proxying for Node core agents unless explicitly disabled.
if (process.env.NODE_USE_ENV_PROXY == null) {
process.env.NODE_USE_ENV_PROXY = "1";
}
// Attempt to configure undici global dispatcher (used by octokit under the hood)
// if a proxy environment variable is present. Failures are non-fatal.
const __proxyUrl =
process.env.HTTPS_PROXY || process.env.HTTP_PROXY || process.env.ALL_PROXY;
if (__proxyUrl) {
(async () => {
try {
const { setGlobalDispatcher, ProxyAgent } = await import("undici");
setGlobalDispatcher(new ProxyAgent(__proxyUrl));
} catch (e) {
// eslint-disable-next-line no-console
console.warn("Proxy setup failed:", e.message);
}
})();
}
/* c8 ignore stop */
// Get the GitHub API URL from the action input and remove any trailing slash
const baseUrl = core.getInput("github-api-url").replace(/\/$/, "");
+1 -1
View File
@@ -8,7 +8,7 @@
"node": ">=24.4.0"
},
"scripts": {
"build": "esbuild bootstrap.js main.js post.js --bundle --outdir=dist --out-extension:.js=.cjs --platform=node --packages=bundle",
"build": "esbuild main.js post.js --bundle --outdir=dist --out-extension:.js=.cjs --platform=node --packages=bundle",
"test": "c8 --100 ava tests/index.js",
"coverage": "c8 report --reporter html",
"postcoverage": "open-cli coverage/index.html"