CodeQL: Add resolveDatabase method

This commit is contained in:
Kasper Svendsen
2025-12-03 09:15:15 +01:00
parent 78357d3fc9
commit dd8914320f
10 changed files with 179 additions and 0 deletions
+17
View File
@@ -120735,6 +120735,23 @@ ${output}`
);
}
},
async resolveDatabase(databasePath) {
const codeqlArgs = [
"resolve",
"database",
databasePath,
"--format=json",
...getExtraOptionsFromEnv(["resolve", "database"])
];
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
try {
return JSON.parse(output);
} catch (e) {
throw new Error(
`Unexpected output from codeql resolve database --format=json: ${e}`
);
}
},
async mergeResults(sarifFiles, outputFile, {
mergeRunsFromEqualCategory = false
}) {
+17
View File
@@ -90887,6 +90887,23 @@ ${output}`
);
}
},
async resolveDatabase(databasePath) {
const codeqlArgs = [
"resolve",
"database",
databasePath,
"--format=json",
...getExtraOptionsFromEnv(["resolve", "database"])
];
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
try {
return JSON.parse(output);
} catch (e) {
throw new Error(
`Unexpected output from codeql resolve database --format=json: ${e}`
);
}
},
async mergeResults(sarifFiles, outputFile, {
mergeRunsFromEqualCategory = false
}) {
+17
View File
@@ -84973,6 +84973,23 @@ ${output}`
);
}
},
async resolveDatabase(databasePath) {
const codeqlArgs = [
"resolve",
"database",
databasePath,
"--format=json",
...getExtraOptionsFromEnv(["resolve", "database"])
];
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
try {
return JSON.parse(output);
} catch (e) {
throw new Error(
`Unexpected output from codeql resolve database --format=json: ${e}`
);
}
},
async mergeResults(sarifFiles, outputFile, {
mergeRunsFromEqualCategory = false
}) {
+17
View File
@@ -125350,6 +125350,23 @@ ${output}`
);
}
},
async resolveDatabase(databasePath) {
const codeqlArgs = [
"resolve",
"database",
databasePath,
"--format=json",
...getExtraOptionsFromEnv(["resolve", "database"])
];
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
try {
return JSON.parse(output);
} catch (e) {
throw new Error(
`Unexpected output from codeql resolve database --format=json: ${e}`
);
}
},
async mergeResults(sarifFiles, outputFile, {
mergeRunsFromEqualCategory = false
}) {
+17
View File
@@ -89147,6 +89147,23 @@ ${output}`
);
}
},
async resolveDatabase(databasePath) {
const codeqlArgs = [
"resolve",
"database",
databasePath,
"--format=json",
...getExtraOptionsFromEnv(["resolve", "database"])
];
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
try {
return JSON.parse(output);
} catch (e) {
throw new Error(
`Unexpected output from codeql resolve database --format=json: ${e}`
);
}
},
async mergeResults(sarifFiles, outputFile, {
mergeRunsFromEqualCategory = false
}) {
+17
View File
@@ -84672,6 +84672,23 @@ ${output}`
);
}
},
async resolveDatabase(databasePath) {
const codeqlArgs = [
"resolve",
"database",
databasePath,
"--format=json",
...getExtraOptionsFromEnv(["resolve", "database"])
];
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
try {
return JSON.parse(output);
} catch (e) {
throw new Error(
`Unexpected output from codeql resolve database --format=json: ${e}`
);
}
},
async mergeResults(sarifFiles, outputFile, {
mergeRunsFromEqualCategory = false
}) {
+17
View File
@@ -85975,6 +85975,23 @@ ${output}`
);
}
},
async resolveDatabase(databasePath) {
const codeqlArgs = [
"resolve",
"database",
databasePath,
"--format=json",
...getExtraOptionsFromEnv(["resolve", "database"])
];
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
try {
return JSON.parse(output);
} catch (e) {
throw new Error(
`Unexpected output from codeql resolve database --format=json: ${e}`
);
}
},
async mergeResults(sarifFiles, outputFile, {
mergeRunsFromEqualCategory = false
}) {
+17
View File
@@ -88697,6 +88697,23 @@ ${output}`
);
}
},
async resolveDatabase(databasePath) {
const codeqlArgs = [
"resolve",
"database",
databasePath,
"--format=json",
...getExtraOptionsFromEnv(["resolve", "database"])
];
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
try {
return JSON.parse(output);
} catch (e) {
throw new Error(
`Unexpected output from codeql resolve database --format=json: ${e}`
);
}
},
async mergeResults(sarifFiles, outputFile, {
mergeRunsFromEqualCategory = false
}) {
+17
View File
@@ -89215,6 +89215,23 @@ ${output}`
);
}
},
async resolveDatabase(databasePath) {
const codeqlArgs = [
"resolve",
"database",
databasePath,
"--format=json",
...getExtraOptionsFromEnv(["resolve", "database"])
];
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
try {
return JSON.parse(output);
} catch (e) {
throw new Error(
`Unexpected output from codeql resolve database --format=json: ${e}`
);
}
},
async mergeResults(sarifFiles, outputFile, {
mergeRunsFromEqualCategory = false
}) {
+26
View File
@@ -206,6 +206,7 @@ export interface CodeQL {
* Run 'codeql resolve queries --format=startingpacks'.
*/
resolveQueriesStartingPacks(queries: string[]): Promise<string[]>;
resolveDatabase(databasePath: string): Promise<ResolveDatabaseOutput>;
/**
* Run 'codeql github merge-results'.
*/
@@ -230,6 +231,10 @@ export interface VersionInfo {
overlayVersion?: number;
}
export interface ResolveDatabaseOutput {
[key: string]: string | [string];
}
export interface ResolveLanguagesOutput {
[language: string]: [string];
}
@@ -493,6 +498,7 @@ export function createStubCodeQL(partialCodeql: Partial<CodeQL>): CodeQL {
partialCodeql,
"resolveQueriesStartingPacks",
),
resolveDatabase: resolveFunction(partialCodeql, "resolveDatabase"),
mergeResults: resolveFunction(partialCodeql, "mergeResults"),
};
}
@@ -1003,6 +1009,26 @@ async function getCodeQLForCmd(
);
}
},
async resolveDatabase(
databasePath: string,
): Promise<ResolveDatabaseOutput> {
const codeqlArgs = [
"resolve",
"database",
databasePath,
"--format=json",
...getExtraOptionsFromEnv(["resolve", "database"]),
];
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
try {
return JSON.parse(output) as ResolveDatabaseOutput;
} catch (e) {
throw new Error(
`Unexpected output from codeql resolve database --format=json: ${e}`,
);
}
},
async mergeResults(
sarifFiles: string[],
outputFile: string,