mirror of
https://github.com/github/codeql-action.git
synced 2026-01-05 14:10:11 +08:00
Convert "Invalid source root" errors to UserErrors
This commit is contained in:
55
src/init.ts
55
src/init.ts
@@ -117,24 +117,7 @@ export async function runInit(
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
// Handle the situation where init is called twice
|
||||
// for the same database in the same job.
|
||||
if (
|
||||
e instanceof Error &&
|
||||
e.message?.includes("Refusing to create databases") &&
|
||||
e.message.includes("exists and is not an empty directory.")
|
||||
) {
|
||||
throw new util.UserError(
|
||||
`Is the "init" action called twice in the same job? ${e.message}`
|
||||
);
|
||||
} else if (
|
||||
e instanceof Error &&
|
||||
e.message?.includes("is not compatible with this CodeQL CLI")
|
||||
) {
|
||||
throw new util.UserError(e.message);
|
||||
} else {
|
||||
throw e;
|
||||
}
|
||||
throw processError(e);
|
||||
}
|
||||
return await getCombinedTracerConfig(
|
||||
config,
|
||||
@@ -144,6 +127,42 @@ export async function runInit(
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Possibly convert this error into a UserError in order to avoid
|
||||
* counting this error towards our internal error budget.
|
||||
*
|
||||
* @param e The error to possibly convert to a UserError.
|
||||
*
|
||||
* @returns A UserError if the error is a known error that can be
|
||||
* attributed to the user, otherwise the original error.
|
||||
*/
|
||||
function processError(e: any): Error {
|
||||
if (!(e instanceof Error)) {
|
||||
return e;
|
||||
}
|
||||
|
||||
if (
|
||||
// Init action called twice
|
||||
e.message?.includes("Refusing to create databases") &&
|
||||
e.message?.includes("exists and is not an empty directory.")
|
||||
) {
|
||||
return new util.UserError(
|
||||
`Is the "init" action called twice in the same job? ${e.message}`
|
||||
);
|
||||
}
|
||||
|
||||
if (
|
||||
// Version of CodeQL CLI is incompatible with this version of the CodeQL Action
|
||||
e.message?.includes("is not compatible with this CodeQL CLI") ||
|
||||
// Expected source location for database creation does not exist
|
||||
e.message?.includes("Invalid source root")
|
||||
) {
|
||||
return new util.UserError(e.message);
|
||||
}
|
||||
|
||||
return e;
|
||||
}
|
||||
|
||||
// Runs a powershell script to inject the tracer into a parent process
|
||||
// so it can tracer future processes, hopefully including the build process.
|
||||
// If processName is given then injects into the nearest parent process with
|
||||
|
||||
Reference in New Issue
Block a user