Refactor non-Swift-specific parts out into traced.ts

This commit is contained in:
Michael B. Gale
2026-10-16 18:19:08 +01:00
committed by GitHub
parent 50c6017169
commit d11751fd79
6 changed files with 608 additions and 543 deletions

121
lib/entry-points.js generated
View File

@@ -42967,11 +42967,11 @@ var require_tracingPolicy = __commonJS({
var import_log = require_log3();
var import_core_util = require_commonjs4();
var import_restError = require_restError3();
var import_util61 = require_internal3();
var import_util62 = require_internal3();
var tracingPolicyName2 = "tracingPolicy";
function tracingPolicy2(options = {}) {
const userAgentPromise = (0, import_userAgent.getUserAgentValue)(options.userAgentPrefix);
const sanitizer = new import_util61.Sanitizer({
const sanitizer = new import_util62.Sanitizer({
additionalAllowedQueryParameters: options.additionalAllowedQueryParameters
});
const tracingClient = tryCreateTracingClient();
@@ -46597,11 +46597,11 @@ var require_response2 = __commonJS({
});
module2.exports = __toCommonJS2(response_exports);
var import_core_rest_pipeline = require_commonjs6();
var import_util61 = require_util9();
var import_util62 = require_util9();
var originalResponse = /* @__PURE__ */ Symbol("Original FullOperationResponse");
function toCompatResponse2(response, options) {
let request3 = (0, import_util61.toWebResourceLike)(response.request);
let headers = (0, import_util61.toHttpHeadersLike)(response.headers);
let request3 = (0, import_util62.toWebResourceLike)(response.request);
let headers = (0, import_util62.toHttpHeadersLike)(response.headers);
if (options?.createProxy) {
return new Proxy(response, {
get(target, prop, receiver) {
@@ -46642,7 +46642,7 @@ var require_response2 = __commonJS({
return {
...compatResponse,
headers,
request: (0, import_util61.toPipelineRequest)(compatResponse.request)
request: (0, import_util62.toPipelineRequest)(compatResponse.request)
};
}
}
@@ -46749,7 +46749,7 @@ var require_requestPolicyFactoryPolicy = __commonJS({
requestPolicyFactoryPolicyName: () => requestPolicyFactoryPolicyName2
});
module2.exports = __toCommonJS2(requestPolicyFactoryPolicy_exports);
var import_util61 = require_util9();
var import_util62 = require_util9();
var import_response = require_response2();
var HttpPipelineLogLevel2 = /* @__PURE__ */ ((HttpPipelineLogLevel22) => {
HttpPipelineLogLevel22[HttpPipelineLogLevel22["ERROR"] = 1] = "ERROR";
@@ -46773,14 +46773,14 @@ var require_requestPolicyFactoryPolicy = __commonJS({
async sendRequest(request3, next) {
let httpPipeline = {
async sendRequest(httpRequest) {
const response2 = await next((0, import_util61.toPipelineRequest)(httpRequest));
const response2 = await next((0, import_util62.toPipelineRequest)(httpRequest));
return (0, import_response.toCompatResponse)(response2, { createProxy: true });
}
};
for (const factory of orderedFactories) {
httpPipeline = factory.create(httpPipeline, mockRequestPolicyOptions);
}
const webResourceLike = (0, import_util61.toWebResourceLike)(request3, { createProxy: true });
const webResourceLike = (0, import_util62.toWebResourceLike)(request3, { createProxy: true });
const response = await httpPipeline.sendRequest(webResourceLike);
return (0, import_response.toPipelineResponse)(response);
}
@@ -46815,12 +46815,12 @@ var require_httpClientAdapter = __commonJS({
});
module2.exports = __toCommonJS2(httpClientAdapter_exports);
var import_response = require_response2();
var import_util61 = require_util9();
var import_util62 = require_util9();
function convertHttpClient2(requestPolicyClient) {
return {
sendRequest: async (request3) => {
const response = await requestPolicyClient.sendRequest(
(0, import_util61.toWebResourceLike)(request3, { createProxy: true })
(0, import_util62.toWebResourceLike)(request3, { createProxy: true })
);
return (0, import_response.toPipelineResponse)(response);
}
@@ -46858,7 +46858,7 @@ var require_commonjs9 = __commonJS({
disableKeepAlivePolicyName: () => import_disableKeepAlivePolicy.disableKeepAlivePolicyName,
requestPolicyFactoryPolicyName: () => import_requestPolicyFactoryPolicy.requestPolicyFactoryPolicyName,
toCompatResponse: () => import_response.toCompatResponse,
toHttpHeadersLike: () => import_util61.toHttpHeadersLike
toHttpHeadersLike: () => import_util62.toHttpHeadersLike
});
module2.exports = __toCommonJS2(src_exports);
var import_extendedClient = require_extendedClient();
@@ -46866,7 +46866,7 @@ var require_commonjs9 = __commonJS({
var import_requestPolicyFactoryPolicy = require_requestPolicyFactoryPolicy();
var import_disableKeepAlivePolicy = require_disableKeepAlivePolicy();
var import_httpClientAdapter = require_httpClientAdapter();
var import_util61 = require_util9();
var import_util62 = require_util9();
}
});
@@ -186219,55 +186219,62 @@ async function getToolsInput(action, repositoryProperties) {
}
// src/languages/swift.ts
var SWIFT_TRACED_UNSUPPORTED_MACOS = 27;
var SWIFT_TRACED_UNSUPPORTED_XCODE = 27;
function handleUnsupportedVersion(logger2, config, skipUnsupportedTracedAnalysis, product, version) {
const baseMessage = [
`Traced Swift analysis is not supported on ${product} ${SWIFT_TRACED_UNSUPPORTED_MACOS} or above.`,
`Configure your analysis to run on macOS ${SWIFT_TRACED_UNSUPPORTED_MACOS - 1} or below`,
`and XCode ${SWIFT_TRACED_UNSUPPORTED_XCODE - 1} or below.`
].join(" ");
const attributeName = product === "macOS" ? "macOSVersion" : "xcodeVersion";
addDiagnostic(
config,
"swift" /* swift */,
makeDiagnostic(
`codeql-action/unsupported-traced-swift-analysis-${product.toLowerCase()}`,
`Traced Swift analysis is not supported on this version of ${product}`,
{
attributes: {
languages: config.languages,
[attributeName]: version.toString()
},
markdownMessage: baseMessage,
severity: skipUnsupportedTracedAnalysis ? "error" : "warning",
visibility: {
cliSummaryTable: true,
statusPage: true,
telemetry: true
}
}
)
);
if (skipUnsupportedTracedAnalysis) {
throw new ConfigurationError(baseMessage);
} else {
logger2.warning(baseMessage);
}
}
async function isSwiftCompatible(action, config, codeql) {
async function isSwiftCompatible(config, codeql, macosVersion) {
if (!config.languages.includes("swift" /* swift */)) {
return;
}
if (await codeql.supportsFeature("swiftSupportsAllPlatforms" /* SwiftSupportsAllPlatforms */)) {
return;
}
const version = macOSVersion(action);
if (version === void 0) {
if (macosVersion === void 0) {
throw new ConfigurationError(
`Swift analysis is only supported on macOS runner images. Please migrate to a macOS runner.`
);
}
}
// src/languages/traced.ts
var UNSUPPORTED_MACOS_FOR_TRACED = 27;
var UNSUPPORTED_XCODE_FOR_TRACED = 27;
function handleUnsupportedVersion(logger2, config, skipUnsupportedTracedAnalysis, product, version) {
const baseMessage = [
`Traced analysis is not supported on ${product} ${UNSUPPORTED_MACOS_FOR_TRACED} or above.`,
`Configure your analysis to run on macOS ${UNSUPPORTED_MACOS_FOR_TRACED - 1} or below`,
`and XCode ${UNSUPPORTED_XCODE_FOR_TRACED - 1} or below.`
].join(" ");
const attributeName = product === "macOS" ? "macOSVersion" : "xcodeVersion";
for (const language of config.languages) {
addDiagnostic(
config,
language,
makeDiagnostic(
`codeql-action/unsupported-traced-analysis-${product.toLowerCase()}`,
`Traced analysis is not supported on this version of ${product}`,
{
attributes: {
languages: config.languages,
[attributeName]: version.toString()
},
markdownMessage: baseMessage,
severity: skipUnsupportedTracedAnalysis ? "error" : "warning",
visibility: {
cliSummaryTable: true,
statusPage: true,
telemetry: true
}
}
)
);
}
if (skipUnsupportedTracedAnalysis) {
throw new ConfigurationError(baseMessage);
} else {
logger2.warning(baseMessage);
}
}
async function checkRunnerSupportsTracedAnalysis(action, config, codeql) {
const version = macOSVersion(action);
await isSwiftCompatible(config, codeql, version);
const skipUnsupportedTracedAnalysis = await action.features.getValue(
"skip_unsupported_traced_analysis" /* SkipUnsupportedTracedAnalysis */
);
@@ -186275,7 +186282,7 @@ async function isSwiftCompatible(action, config, codeql) {
action.logger.warning(
`Unable to determine version of macOS, got: ${version}`
);
} else if (version.major >= SWIFT_TRACED_UNSUPPORTED_MACOS) {
} else if (version !== void 0 && version.major >= UNSUPPORTED_MACOS_FOR_TRACED) {
handleUnsupportedVersion(
action.logger,
config,
@@ -186285,7 +186292,7 @@ async function isSwiftCompatible(action, config, codeql) {
);
}
const xcodeVer = xcodeVersion(action.logger);
if (xcodeVer !== void 0 && xcodeVer.major >= SWIFT_TRACED_UNSUPPORTED_XCODE) {
if (xcodeVer !== void 0 && xcodeVer.major >= UNSUPPORTED_XCODE_FOR_TRACED) {
handleUnsupportedVersion(
action.logger,
config,
@@ -186815,7 +186822,11 @@ async function run3(actionState) {
enableFileCoverageInformation: fileCoverageResult.enabled,
logger: logger2
});
await isSwiftCompatible(actionStateWithFeatures, config, codeql);
await checkRunnerSupportsTracedAnalysis(
actionStateWithFeatures,
config,
codeql
);
if (repositoryPropertiesResult.isFailure()) {
addNoLanguageDiagnostic(
config,