Skip to content

Commit 8ca90f9

Browse files
committed
Fix linting errors
1 parent cc99631 commit 8ca90f9

File tree

6 files changed

+121
-75
lines changed

6 files changed

+121
-75
lines changed

src/codeql.ts

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -301,17 +301,23 @@ export async function setupCodeQL(
301301
defaultCliVersion: CodeQLDefaultVersionInfo,
302302
logger: Logger,
303303
checkVersion: boolean
304-
): Promise<{ codeql: CodeQL; toolsDownloadDurationMs?: number; toolsSource: ToolsSource; toolsVersion: string }> {
304+
): Promise<{
305+
codeql: CodeQL;
306+
toolsDownloadDurationMs?: number;
307+
toolsSource: ToolsSource;
308+
toolsVersion: string;
309+
}> {
305310
try {
306-
const { codeqlFolder, toolsDownloadDurationMs, toolsSource, toolsVersion } = await setupCodeql.setupCodeQLBundle(
307-
toolsInput,
308-
apiDetails,
309-
tempDir,
310-
variant,
311-
bypassToolcache,
312-
defaultCliVersion,
313-
logger
314-
);
311+
const { codeqlFolder, toolsDownloadDurationMs, toolsSource, toolsVersion } =
312+
await setupCodeql.setupCodeQLBundle(
313+
toolsInput,
314+
apiDetails,
315+
tempDir,
316+
variant,
317+
bypassToolcache,
318+
defaultCliVersion,
319+
logger
320+
);
315321
let codeqlCmd = path.join(codeqlFolder, "codeql", "codeql");
316322
if (process.platform === "win32") {
317323
codeqlCmd += ".exe";
@@ -320,7 +326,12 @@ export async function setupCodeQL(
320326
}
321327

322328
cachedCodeQL = await getCodeQLForCmd(codeqlCmd, checkVersion);
323-
return { codeql: cachedCodeQL, toolsDownloadDurationMs, toolsSource, toolsVersion };
329+
return {
330+
codeql: cachedCodeQL,
331+
toolsDownloadDurationMs,
332+
toolsSource,
333+
toolsVersion,
334+
};
324335
} catch (e) {
325336
logger.error(e instanceof Error ? e : new Error(String(e)));
326337
throw new Error("Unable to download and extract CodeQL CLI");

src/feature-flags.test.ts

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -378,13 +378,11 @@ for (const variant of [GitHubVariant.GHAE, GitHubVariant.GHES]) {
378378
const features = setUpFeatureFlagTests(tmpDir);
379379

380380
const defaultCliVersion = await features.getDefaultCliVersion(variant);
381-
t.deepEqual(
382-
defaultCliVersion.codeQLDefaultVersionInfo,
383-
{
384-
cliVersion: defaults.cliVersion,
385-
tagName: defaults.bundleVersion,
386-
variant,
387-
});
381+
t.deepEqual(defaultCliVersion.codeQLDefaultVersionInfo, {
382+
cliVersion: defaults.cliVersion,
383+
tagName: defaults.bundleVersion,
384+
variant,
385+
});
388386

389387
t.is(defaultCliVersion.toolsFeatureFlagsValid, undefined);
390388
});
@@ -403,13 +401,13 @@ test("selects CLI v2.12.1 on Dotcom when feature flags enable v2.12.0 and v2.12.
403401
expectedFeatureEnablement["default_codeql_version_2_12_5_enabled"] = false;
404402
mockFeatureFlagApiEndpoint(200, expectedFeatureEnablement);
405403

406-
const defaultCliVersion = await featureEnablement.getDefaultCliVersion(GitHubVariant.DOTCOM);
407-
t.deepEqual(
408-
defaultCliVersion.codeQLDefaultVersionInfo,
409-
{
410-
cliVersion: "2.12.1",
411-
variant: GitHubVariant.DOTCOM,
412-
});
404+
const defaultCliVersion = await featureEnablement.getDefaultCliVersion(
405+
GitHubVariant.DOTCOM
406+
);
407+
t.deepEqual(defaultCliVersion.codeQLDefaultVersionInfo, {
408+
cliVersion: "2.12.1",
409+
variant: GitHubVariant.DOTCOM,
410+
});
413411

414412
t.is(defaultCliVersion.toolsFeatureFlagsValid, true);
415413
});
@@ -421,13 +419,13 @@ test(`selects CLI v2.11.6 on Dotcom when no default version feature flags are en
421419
const expectedFeatureEnablement = initializeFeatures(true);
422420
mockFeatureFlagApiEndpoint(200, expectedFeatureEnablement);
423421

424-
const defaultCliVersion = await featureEnablement.getDefaultCliVersion(GitHubVariant.DOTCOM);
425-
t.deepEqual(
426-
defaultCliVersion.codeQLDefaultVersionInfo,
427-
{
428-
cliVersion: "2.11.6",
429-
variant: GitHubVariant.DOTCOM,
430-
});
422+
const defaultCliVersion = await featureEnablement.getDefaultCliVersion(
423+
GitHubVariant.DOTCOM
424+
);
425+
t.deepEqual(defaultCliVersion.codeQLDefaultVersionInfo, {
426+
cliVersion: "2.11.6",
427+
variant: GitHubVariant.DOTCOM,
428+
});
431429

432430
t.is(defaultCliVersion.toolsFeatureFlagsValid, false);
433431
});
@@ -447,13 +445,13 @@ test("ignores invalid version numbers in default version feature flags", async (
447445
true;
448446
mockFeatureFlagApiEndpoint(200, expectedFeatureEnablement);
449447

450-
const defaultCliVersion = await featureEnablement.getDefaultCliVersion(GitHubVariant.DOTCOM);
451-
t.deepEqual(
452-
defaultCliVersion.codeQLDefaultVersionInfo,
453-
{
454-
cliVersion: "2.12.1",
455-
variant: GitHubVariant.DOTCOM,
456-
});
448+
const defaultCliVersion = await featureEnablement.getDefaultCliVersion(
449+
GitHubVariant.DOTCOM
450+
);
451+
t.deepEqual(defaultCliVersion.codeQLDefaultVersionInfo, {
452+
cliVersion: "2.12.1",
453+
variant: GitHubVariant.DOTCOM,
454+
});
457455

458456
t.is(defaultCliVersion.toolsFeatureFlagsValid, true);
459457

src/feature-flags.ts

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,10 @@ export type CodeQLDefaultVersionInfo =
2727

2828
export interface FeatureEnablement {
2929
/** Gets the default version of the CodeQL tools. */
30-
getDefaultCliVersion(
31-
variant: util.GitHubVariant
32-
): Promise<{ codeQLDefaultVersionInfo: CodeQLDefaultVersionInfo; toolsFeatureFlagsValid?: boolean }>;
30+
getDefaultCliVersion(variant: util.GitHubVariant): Promise<{
31+
codeQLDefaultVersionInfo: CodeQLDefaultVersionInfo;
32+
toolsFeatureFlagsValid?: boolean;
33+
}>;
3334
getValue(feature: Feature, codeql?: CodeQL): Promise<boolean>;
3435
}
3536

@@ -113,9 +114,10 @@ export class Features implements FeatureEnablement {
113114
);
114115
}
115116

116-
async getDefaultCliVersion(
117-
variant: util.GitHubVariant
118-
): Promise<{ codeQLDefaultVersionInfo: CodeQLDefaultVersionInfo; toolsFeatureFlagsValid?: boolean }> {
117+
async getDefaultCliVersion(variant: util.GitHubVariant): Promise<{
118+
codeQLDefaultVersionInfo: CodeQLDefaultVersionInfo;
119+
toolsFeatureFlagsValid?: boolean;
120+
}> {
119121
return await this.gitHubFeatureFlags.getDefaultCliVersion(variant);
120122
}
121123

@@ -204,17 +206,18 @@ class GitHubFeatureFlags implements FeatureEnablement {
204206
return version;
205207
}
206208

207-
async getDefaultCliVersion(
208-
variant: util.GitHubVariant
209-
): Promise<{ codeQLDefaultVersionInfo: CodeQLDefaultVersionInfo; toolsFeatureFlagsValid?: boolean }> {
209+
async getDefaultCliVersion(variant: util.GitHubVariant): Promise<{
210+
codeQLDefaultVersionInfo: CodeQLDefaultVersionInfo;
211+
toolsFeatureFlagsValid?: boolean;
212+
}> {
210213
if (variant === util.GitHubVariant.DOTCOM) {
211214
const defaultDotComCliVersion = await this.getDefaultDotcomCliVersion();
212215
return {
213216
codeQLDefaultVersionInfo: {
214217
cliVersion: defaultDotComCliVersion.version,
215218
variant,
216219
},
217-
toolsFeatureFlagsValid: defaultDotComCliVersion.toolsFeatureFlagsValid
220+
toolsFeatureFlagsValid: defaultDotComCliVersion.toolsFeatureFlagsValid,
218221
};
219222
}
220223
return {
@@ -226,7 +229,10 @@ class GitHubFeatureFlags implements FeatureEnablement {
226229
};
227230
}
228231

229-
async getDefaultDotcomCliVersion(): Promise<{ version: string; toolsFeatureFlagsValid: boolean }> {
232+
async getDefaultDotcomCliVersion(): Promise<{
233+
version: string;
234+
toolsFeatureFlagsValid: boolean;
235+
}> {
230236
const response = await this.getAllFeatures();
231237

232238
const enabledFeatureFlagCliVersions = Object.entries(response)
@@ -241,7 +247,10 @@ class GitHubFeatureFlags implements FeatureEnablement {
241247
"Feature flags do not specify a default CLI version. Falling back to CLI version " +
242248
`${MINIMUM_ENABLED_CODEQL_VERSION}.`
243249
);
244-
return { version: MINIMUM_ENABLED_CODEQL_VERSION, toolsFeatureFlagsValid: false };
250+
return {
251+
version: MINIMUM_ENABLED_CODEQL_VERSION,
252+
toolsFeatureFlagsValid: false,
253+
};
245254
}
246255

247256
const maxCliVersion = enabledFeatureFlagCliVersions.reduce(

src/init-action.ts

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
injectWindowsTracer,
2424
installPythonDeps,
2525
runInit,
26-
ToolsSource
26+
ToolsSource,
2727
} from "./init";
2828
import { Language } from "./languages";
2929
import { getActionsLogger, Logger } from "./logging";
@@ -139,12 +139,12 @@ async function sendInitStatusReport(
139139
tools_resolved_version: toolsVersion || "",
140140
workflow_languages: workflowLanguages || "",
141141
// TODO(angelapwen): I think the following will crash if config.trapCaches is undefined because we might
142-
// be sending a failure report before we initialize config.
142+
// be sending a failure report before we initialize config.
143143
trap_cache_languages: Object.keys(config.trapCaches).join(",") || "",
144-
trap_cache_download_size_bytes: Math.round(
145-
await getTotalCacheSize(config.trapCaches, logger)
146-
) || -1, // Placeholder value if cache size is not determined yet.
147-
trap_cache_download_duration_ms: Math.round(config.trapCacheDownloadTime) || -1, // Placeholder value if cache size is not determined yet.,
144+
trap_cache_download_size_bytes:
145+
Math.round(await getTotalCacheSize(config.trapCaches, logger)) || -1, // Placeholder value if cache size is not determined yet.
146+
trap_cache_download_duration_ms:
147+
Math.round(config.trapCacheDownloadTime) || -1, // Placeholder value if cache size is not determined yet.,
148148
tools_source: toolsSource || ToolsSource.Unknown,
149149
};
150150

@@ -155,8 +155,12 @@ async function sendInitStatusReport(
155155
// Otherwise, we should append the extra two download-related telemetry fields.
156156
const downloadStatusReport: InitDownloadStatusReport = {
157157
...statusReport,
158-
tools_download_duration_ms: toolsDownloadDurationMs ? toolsDownloadDurationMs : -1, // Placeholder value in case field is undefined.
159-
tools_feature_flags_valid: toolsFeatureFlagsValid ? toolsFeatureFlagsValid : false, // Report invalid in case field is undefined.
158+
tools_download_duration_ms: toolsDownloadDurationMs
159+
? toolsDownloadDurationMs
160+
: -1, // Placeholder value in case field is undefined.
161+
tools_feature_flags_valid: toolsFeatureFlagsValid
162+
? toolsFeatureFlagsValid
163+
: false, // Report invalid in case field is undefined.
160164
};
161165

162166
await sendStatusReport(downloadStatusReport);
@@ -363,7 +367,16 @@ async function run() {
363367
);
364368
return;
365369
}
366-
await sendInitStatusReport("success", startedAt, config, toolsDownloadDurationMs, toolsFeatureFlagsValid, toolsSource, toolsVersion, logger);
370+
await sendInitStatusReport(
371+
"success",
372+
startedAt,
373+
config,
374+
toolsDownloadDurationMs,
375+
toolsFeatureFlagsValid,
376+
toolsSource,
377+
toolsVersion,
378+
logger
379+
);
367380
}
368381

369382
async function getTrapCachingEnabled(

src/init.ts

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export enum ToolsSource {
1919
Unknown = "UNKNOWN",
2020
Local = "LOCAL",
2121
Toolcache = "TOOLCACHE",
22-
Download = "DOWNLOAD"
22+
Download = "DOWNLOAD",
2323
}
2424

2525
export async function initCodeQL(
@@ -30,18 +30,24 @@ export async function initCodeQL(
3030
bypassToolcache: boolean,
3131
defaultCliVersion: CodeQLDefaultVersionInfo,
3232
logger: Logger
33-
): Promise<{ codeql: CodeQL; toolsDownloadDurationMs?: number; toolsSource: ToolsSource; toolsVersion: string }> {
33+
): Promise<{
34+
codeql: CodeQL;
35+
toolsDownloadDurationMs?: number;
36+
toolsSource: ToolsSource;
37+
toolsVersion: string;
38+
}> {
3439
logger.startGroup("Setup CodeQL tools");
35-
const { codeql, toolsDownloadDurationMs, toolsSource, toolsVersion } = await setupCodeQL(
36-
toolsInput,
37-
apiDetails,
38-
tempDir,
39-
variant,
40-
bypassToolcache,
41-
defaultCliVersion,
42-
logger,
43-
true
44-
);
40+
const { codeql, toolsDownloadDurationMs, toolsSource, toolsVersion } =
41+
await setupCodeQL(
42+
toolsInput,
43+
apiDetails,
44+
tempDir,
45+
variant,
46+
bypassToolcache,
47+
defaultCliVersion,
48+
logger,
49+
true
50+
);
4551
await codeql.printVersion();
4652
logger.endGroup();
4753
return { codeql, toolsDownloadDurationMs, toolsSource, toolsVersion };

src/setup-codeql.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,11 @@ export async function downloadCodeQL(
516516
variant: util.GitHubVariant,
517517
tempDir: string,
518518
logger: Logger
519-
): Promise<{ toolsVersion: string; codeqlFolder: string; toolsDownloadDurationMs: number }> {
519+
): Promise<{
520+
toolsVersion: string;
521+
codeqlFolder: string;
522+
toolsDownloadDurationMs: number;
523+
}> {
520524
const parsedCodeQLURL = new URL(codeqlURL);
521525
const searchParams = new URLSearchParams(parsedCodeQLURL.search);
522526
const headers: OutgoingHttpHeaders = {
@@ -587,7 +591,7 @@ export async function downloadCodeQL(
587591
"CodeQL",
588592
toolcacheVersion
589593
),
590-
toolsDownloadDurationMs
594+
toolsDownloadDurationMs,
591595
};
592596
}
593597

@@ -623,7 +627,12 @@ export async function setupCodeQLBundle(
623627
bypassToolcache: boolean,
624628
defaultCliVersion: CodeQLDefaultVersionInfo,
625629
logger: Logger
626-
): Promise<{ codeqlFolder: string; toolsDownloadDurationMs?: number; toolsSource: ToolsSource; toolsVersion: string }> {
630+
): Promise<{
631+
codeqlFolder: string;
632+
toolsDownloadDurationMs?: number;
633+
toolsSource: ToolsSource;
634+
toolsVersion: string;
635+
}> {
627636
const source = await getCodeQLSource(
628637
toolsInput,
629638
bypassToolcache,

0 commit comments

Comments
 (0)