Add InstanceApiClient and incorporate getAuthorizationHeaderFor into it

This commit is contained in:
Michael B. Gale
2026-10-14 12:02:00 +01:00
parent b2bf75026d
commit 8884b5b423
7 changed files with 155 additions and 125 deletions

54
lib/entry-points.js generated
View File

@@ -170738,6 +170738,37 @@ function makeProxyRequestOptions(dispatcher) {
}
};
}
var InstanceApiClient = class {
client;
apiDetails;
authorizationHeader;
constructor(apiDetails, clientOptions = {}) {
this.apiDetails = apiDetails;
this.client = createApiClientWithDetails(apiDetails, clientOptions);
const token = this.apiDetails.auth?.trim();
if (token !== void 0 && token !== "") {
this.authorizationHeader = `token ${token}`;
}
}
/**
* Gets a value for the `Authorization` header for a request to `url`; or `undefined` if the
* `Authorization` header should not be set for `url`.
*
* @param logger The logger to use for debugging messages.
* @param url The URL for which we want to add an `Authorization` header.
*/
getAuthorizationHeaderFor(logger2, url2) {
if (this.authorizationHeader === void 0) {
return void 0;
}
if (url2.startsWith(`${this.apiDetails.url}/`) || this.apiDetails.apiURL && url2.startsWith(`${this.apiDetails.apiURL}/`)) {
logger2.debug(`Providing an authorization token.`);
return this.authorizationHeader;
}
logger2.debug(`Not using an authorization token.`);
return void 0;
}
};
function createApiClientWithDetails(apiDetails, { allowExternal = false, proxy = void 0 } = {}) {
const auth2 = allowExternal && apiDetails.externalRepoAuth !== void 0 ? apiDetails.externalRepoAuth : apiDetails.auth;
const retryingOctokit = githubUtils.GitHub.plugin(retry);
@@ -170781,18 +170812,6 @@ function getDotcomApiDetails(env) {
function getApiClientWithExternalAuth(apiDetails, proxy) {
return createApiClientWithDetails(apiDetails, { allowExternal: true, proxy });
}
function getAuthorizationHeaderFor(logger2, apiDetails, url2) {
const token = apiDetails.auth?.trim();
if (token === void 0 || token === "") {
return void 0;
}
if (url2.startsWith(`${apiDetails.url}/`) || apiDetails.apiURL && url2.startsWith(`${apiDetails.apiURL}/`)) {
logger2.debug(`Providing an authorization token.`);
return `token ${token}`;
}
logger2.debug(`Not using an authorization token.`);
return void 0;
}
var cachedGitHubVersion = void 0;
async function getGitHubVersionFromApi(apiClient, apiDetails) {
if (parseGitHubUrl(apiDetails.url) === GITHUB_DOTCOM_URL) {
@@ -176692,11 +176711,8 @@ var downloadCodeQL = async function(source, tarVersion, tempDir, logger2) {
if (searchParams.has("token")) {
logger2.debug("CodeQL tools URL contains an authorization token.");
} else {
authorization = getAuthorizationHeaderFor(
logger2,
source.apiDetails,
codeqlURL
);
const client = new InstanceApiClient(source.apiDetails);
authorization = client.getAuthorizationHeaderFor(logger2, codeqlURL);
}
const toolcacheDestination = getToolcacheDestination({ logger: logger2 }, source);
const extractedBundlePath = toolcacheDestination.orElse(
@@ -187927,6 +187943,7 @@ async function getProxyBinaryPath(action, apiDetails) {
const logger2 = action.logger;
logger2.startGroup("Setting up authentication proxy");
try {
const client = new InstanceApiClient(apiDetails);
const proxyFileName = getProxyFilename();
const proxyInfo = await getDownloadUrl(action, apiDetails);
logger2.info(
@@ -187937,9 +187954,8 @@ async function getProxyBinaryPath(action, apiDetails) {
logger2.info(
`Authentication proxy is not in the toolcache. Will try to download it from '${proxyInfo.url}'.`
);
const authorization = getAuthorizationHeaderFor(
const authorization = client.getAuthorizationHeaderFor(
logger2,
apiDetails,
proxyInfo.url
);
const temp = await downloadProxy(logger2, proxyInfo.url, authorization);