Add transformPayload to AnalysisConfig

This commit is contained in:
Michael B. Gale
2026-02-11 23:45:34 +00:00
parent cbb92e7ff6
commit 0cfcceb4b8
6 changed files with 100 additions and 72 deletions
+6
View File
@@ -4,6 +4,7 @@ import {
getRequiredInput,
} from "./actions-util";
import { Logger } from "./logging";
import { UploadPayload } from "./upload-lib/types";
import { ConfigurationError } from "./util";
export enum AnalysisKind {
@@ -146,6 +147,8 @@ export interface AnalysisConfig {
fixCategory: (logger: Logger, category?: string) => string | undefined;
/** A prefix for environment variables used to track the uniqueness of SARIF uploads. */
sentinelPrefix: string;
/** Transforms the upload payload in an analysis-specific way. */
transformPayload: (payload: UploadPayload) => UploadPayload;
}
// Represents the Code Scanning analysis configuration.
@@ -160,6 +163,7 @@ export const CodeScanning: AnalysisConfig = {
!CSRA.sarifPredicate(name),
fixCategory: (_, category) => category,
sentinelPrefix: "CODEQL_UPLOAD_SARIF_",
transformPayload: (payload) => payload,
};
// Represents the Code Quality analysis configuration.
@@ -171,6 +175,7 @@ export const CodeQuality: AnalysisConfig = {
sarifPredicate: (name) => name.endsWith(CodeQuality.sarifExtension),
fixCategory: fixCodeQualityCategory,
sentinelPrefix: "CODEQL_UPLOAD_QUALITY_SARIF_",
transformPayload: (payload) => payload,
};
export const CSRA: AnalysisConfig = {
@@ -181,6 +186,7 @@ export const CSRA: AnalysisConfig = {
sarifPredicate: (name) => name.endsWith(CSRA.sarifExtension),
fixCategory: fixCodeQualityCategory,
sentinelPrefix: "CODEQL_UPLOAD_CSRA_SARIF_",
transformPayload: (payload) => payload,
};
/**
+14 -12
View File
@@ -848,18 +848,20 @@ export async function uploadPostProcessedFiles(
const zippedSarif = zlib.gzipSync(sarifPayload).toString("base64");
const checkoutURI = url.pathToFileURL(checkoutPath).href;
const payload = buildPayload(
await gitUtils.getCommitOid(checkoutPath),
await gitUtils.getRef(),
postProcessingResults.analysisKey,
util.getRequiredEnvParam("GITHUB_WORKFLOW"),
zippedSarif,
actionsUtil.getWorkflowRunID(),
actionsUtil.getWorkflowRunAttempt(),
checkoutURI,
postProcessingResults.environment,
toolNames,
await gitUtils.determineBaseBranchHeadCommitOid(),
const payload = uploadTarget.transformPayload(
buildPayload(
await gitUtils.getCommitOid(checkoutPath),
await gitUtils.getRef(),
postProcessingResults.analysisKey,
util.getRequiredEnvParam("GITHUB_WORKFLOW"),
zippedSarif,
actionsUtil.getWorkflowRunID(),
actionsUtil.getWorkflowRunAttempt(),
checkoutURI,
postProcessingResults.environment,
toolNames,
await gitUtils.determineBaseBranchHeadCommitOid(),
),
);
// Log some useful debug info about the info