Add analysis-kinds input and parse it

This commit is contained in:
Michael B. Gale
2025-08-27 18:15:47 +01:00
parent d062f2b421
commit e0104a269f
16 changed files with 169 additions and 6 deletions

View File

@@ -6,6 +6,7 @@ import * as yaml from "js-yaml";
import * as semver from "semver";
import { isAnalyzingPullRequest } from "./actions-util";
import { AnalysisKind, parseAnalysisKinds } from "./analyses";
import * as api from "./api-client";
import { CachingKind, getCachingKind } from "./caching-utils";
import { type CodeQL } from "./codeql";
@@ -93,6 +94,10 @@ interface IncludeQueryFilter {
* Format of the parsed config file.
*/
export interface Config {
/**
* Set of analysis kinds that are enabled.
*/
analysisKinds: AnalysisKind[];
/**
* Set of languages to run analysis for.
*/
@@ -483,6 +488,7 @@ export async function getRawLanguages(
/** Inputs required to initialize a configuration. */
export interface InitConfigInputs {
analysisKindsInput: string;
languagesInput: string | undefined;
queriesInput: string | undefined;
qualityQueriesInput: string | undefined;
@@ -511,6 +517,7 @@ export interface InitConfigInputs {
* Get the default config, populated without user configuration file.
*/
export async function getDefaultConfig({
analysisKindsInput,
languagesInput,
queriesInput,
qualityQueriesInput,
@@ -530,6 +537,8 @@ export async function getDefaultConfig({
features,
logger,
}: InitConfigInputs): Promise<Config> {
const analysisKinds = await parseAnalysisKinds(analysisKindsInput);
const languages = await getLanguages(
codeql,
languagesInput,
@@ -560,6 +569,7 @@ export async function getDefaultConfig({
);
return {
analysisKinds,
languages,
buildMode,
originalUserInput: {},