Merge pull request #1694 from jsoref/fixes

Fix running tests on forks, and handle invalid URIs when fingerprinting
This commit is contained in:
Henry Mercer 2023-05-25 15:41:27 +01:00 committed by GitHub
commit 1023a086ae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
40 changed files with 158 additions and 45 deletions

View file

@ -201,7 +201,14 @@ export function resolveUriToFile(
logger.debug(`Ignoring location as URI "${location.uri}" is invalid`);
return undefined;
}
let uri = decodeURIComponent(location.uri as string);
let uri: string;
try {
uri = decodeURIComponent(location.uri as string);
} catch (e: any) {
logger.debug(`Ignoring location as URI "${location.uri}" is invalid`);
return undefined;
}
// Remove a file scheme, and abort if the scheme is anything else
const fileUriPrefix = "file://";

View file

@ -171,9 +171,10 @@ export async function run(
process.env["CODEQL_ACTION_EXPECT_UPLOAD_FAILED_SARIF"] === "true" &&
!uploadFailedSarifResult.raw_upload_size_bytes
) {
const error = JSON.stringify(uploadFailedSarifResult);
throw new Error(
"Expected to upload a failed SARIF file for this CodeQL code scanning run, " +
`but the result was instead ${uploadFailedSarifResult}.`
`but the result was instead ${error}.`
);
}

View file

@ -7,7 +7,7 @@ import * as yaml from "js-yaml";
import * as api from "./api-client";
import { Logger } from "./logging";
import { getRequiredEnvParam } from "./util";
import { getRequiredEnvParam, isInTestMode } from "./util";
export interface WorkflowJobStep {
name?: string;
@ -389,7 +389,11 @@ function getInputOrThrow(
* This allows us to test workflow parsing functionality as a CodeQL Action PR check.
*/
function getAnalyzeActionName() {
if (getRequiredEnvParam("GITHUB_REPOSITORY") === "github/codeql-action") {
if (
isInTestMode() ||
process.env["CODEQL_ACTION_TESTING_ENVIRONMENT"] ===
"codeql-action-pr-checks"
) {
return "./analyze";
} else {
return "github/codeql-action/analyze";