Skip to content

Commit 3c8d00a

Browse files
committed
Initialise analysis kinds before starting status report
1 parent bc93b04 commit 3c8d00a

File tree

4 files changed

+56
-55
lines changed

4 files changed

+56
-55
lines changed

lib/init-action.js

Lines changed: 44 additions & 33 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/config-utils.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ function createTestInitConfigInputs(
4949
return Object.assign(
5050
{},
5151
{
52-
analysisKindsInput: "code-scanning",
52+
analysisKinds: [AnalysisKind.CodeScanning],
5353
languagesInput: undefined,
5454
queriesInput: undefined,
5555
qualityQueriesInput: undefined,
@@ -189,7 +189,7 @@ test("load code quality config", async (t) => {
189189

190190
const config = await configUtils.initConfig(
191191
createTestInitConfigInputs({
192-
analysisKindsInput: "code-quality",
192+
analysisKinds: [AnalysisKind.CodeQuality],
193193
languagesInput: languages,
194194
repository: { owner: "github", repo: "example" },
195195
tempDir,
@@ -273,7 +273,7 @@ test("initActionState doesn't throw if there are queries configured in the repos
273273
await t.notThrowsAsync(async () => {
274274
const config = await configUtils.initConfig(
275275
createTestInitConfigInputs({
276-
analysisKindsInput: "code-quality",
276+
analysisKinds: [AnalysisKind.CodeQuality],
277277
languagesInput: languages,
278278
repository: { owner: "github", repo: "example" },
279279
tempDir,

src/config-utils.ts

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import {
1111
CodeQuality,
1212
codeQualityQueries,
1313
CodeScanning,
14-
parseAnalysisKinds,
1514
} from "./analyses";
1615
import * as api from "./api-client";
1716
import { CachingKind, getCachingKind } from "./caching-utils";
@@ -373,7 +372,6 @@ export async function getRawLanguages(
373372

374373
/** Inputs required to initialize a configuration. */
375374
export interface InitConfigInputs {
376-
analysisKindsInput: string;
377375
languagesInput: string | undefined;
378376
queriesInput: string | undefined;
379377
qualityQueriesInput: string | undefined;
@@ -396,6 +394,7 @@ export interface InitConfigInputs {
396394
apiDetails: api.GitHubApiCombinedDetails;
397395
features: FeatureEnablement;
398396
repositoryProperties: RepositoryProperties;
397+
analysisKinds: AnalysisKind[];
399398
logger: Logger;
400399
}
401400

@@ -405,10 +404,8 @@ export interface InitConfigInputs {
405404
*/
406405
export async function initActionState(
407406
{
408-
analysisKindsInput,
409407
languagesInput,
410408
queriesInput,
411-
qualityQueriesInput,
412409
packsInput,
413410
buildModeInput,
414411
dbLocation,
@@ -424,22 +421,11 @@ export async function initActionState(
424421
githubVersion,
425422
features,
426423
repositoryProperties,
424+
analysisKinds,
427425
logger,
428426
}: InitConfigInputs,
429427
userConfig: UserConfig,
430428
): Promise<Config> {
431-
const analysisKinds = await parseAnalysisKinds(analysisKindsInput);
432-
433-
// For backwards compatibility, add Code Quality to the enabled analysis kinds
434-
// if an input to `quality-queries` was specified. We should remove this once
435-
// `quality-queries` is no longer used.
436-
if (
437-
!analysisKinds.includes(AnalysisKind.CodeQuality) &&
438-
qualityQueriesInput !== undefined
439-
) {
440-
analysisKinds.push(AnalysisKind.CodeQuality);
441-
}
442-
443429
const languages = await getLanguages(
444430
codeql,
445431
languagesInput,

src/init-action.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
getTemporaryDirectory,
1616
persistInputs,
1717
} from "./actions-util";
18+
import { initAnalysisKinds } from "./analyses";
1819
import { getGitHubVersion } from "./api-client";
1920
import {
2021
getDependencyCachingEnabled,
@@ -105,7 +106,7 @@ interface InitToolsDownloadFields {
105106
*/
106107
async function sendStartingStatusReport(
107108
startedAt: Date,
108-
config: configUtils.Config | undefined,
109+
config: Partial<configUtils.Config> | undefined,
109110
logger: Logger,
110111
) {
111112
const statusReportBase = await createStatusReportBase(
@@ -252,7 +253,10 @@ async function run() {
252253
);
253254

254255
try {
255-
await sendStartingStatusReport(startedAt, config, logger);
256+
// This may throw a `ConfigurationError` before we have sent the `starting` status report.
257+
const analysisKinds = await initAnalysisKinds(logger);
258+
// Send a status report indicating that an analysis is starting.
259+
await sendStartingStatusReport(startedAt, { analysisKinds }, logger);
256260
const codeQLDefaultVersionInfo = await features.getDefaultCliVersion(
257261
gitHubVersion.type,
258262
);
@@ -319,7 +323,7 @@ async function run() {
319323
}
320324

321325
config = await initConfig({
322-
analysisKindsInput: getRequiredInput("analysis-kinds"),
326+
analysisKinds,
323327
languagesInput: getOptionalInput("languages"),
324328
queriesInput: getOptionalInput("queries"),
325329
qualityQueriesInput,

0 commit comments

Comments
 (0)