diff --git a/lib/analyze-action.js b/lib/analyze-action.js index 12628f9bd..fba60d03b 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -90113,12 +90113,6 @@ function fixCodeQualityCategory(logger, category) { return category; } -// src/analyze.ts -var fs15 = __toESM(require("fs")); -var path16 = __toESM(require("path")); -var import_perf_hooks2 = require("perf_hooks"); -var io5 = __toESM(require_io()); - // src/analyses.ts var AnalysisKind = /* @__PURE__ */ ((AnalysisKind2) => { AnalysisKind2["CodeScanning"] = "code-scanning"; @@ -90127,6 +90121,24 @@ var AnalysisKind = /* @__PURE__ */ ((AnalysisKind2) => { })(AnalysisKind || {}); var supportedAnalysisKinds = new Set(Object.values(AnalysisKind)); var codeQualityQueries = ["code-quality"]; +var CodeScanningTarget = { + name: "code scanning", + target: "PUT /repos/:owner/:repo/code-scanning/analysis" /* CODE_SCANNING */, + sarifPredicate: (name) => name.endsWith(".sarif") && !CodeQualityTarget.sarifPredicate(name), + sentinelPrefix: "CODEQL_UPLOAD_SARIF_" +}; +var CodeQualityTarget = { + name: "code quality", + target: "PUT /repos/:owner/:repo/code-quality/analysis" /* CODE_QUALITY */, + sarifPredicate: (name) => name.endsWith(".quality.sarif"), + sentinelPrefix: "CODEQL_UPLOAD_QUALITY_SARIF_" +}; + +// src/analyze.ts +var fs15 = __toESM(require("fs")); +var path16 = __toESM(require("path")); +var import_perf_hooks2 = require("perf_hooks"); +var io5 = __toESM(require_io()); // src/api-client.ts var core5 = __toESM(require_core()); @@ -95498,18 +95510,6 @@ function buildPayload(commitOid, ref, analysisKey, analysisName, zippedSarif, wo } return payloadObj; } -var CodeScanningTarget = { - name: "code scanning", - target: "PUT /repos/:owner/:repo/code-scanning/analysis" /* CODE_SCANNING */, - sarifPredicate: (name) => name.endsWith(".sarif") && !CodeQualityTarget.sarifPredicate(name), - sentinelPrefix: "CODEQL_UPLOAD_SARIF_" -}; -var CodeQualityTarget = { - name: "code quality", - target: "PUT /repos/:owner/:repo/code-quality/analysis" /* CODE_QUALITY */, - sarifPredicate: (name) => name.endsWith(".quality.sarif"), - sentinelPrefix: "CODEQL_UPLOAD_QUALITY_SARIF_" -}; async function uploadFiles(inputSarifPath, checkoutPath, category, features, logger, uploadTarget) { const sarifPaths = getSarifFilePaths( inputSarifPath, diff --git a/lib/init-action-post.js b/lib/init-action-post.js index 2751c1ec8..31547af74 100644 --- a/lib/init-action-post.js +++ b/lib/init-action-post.js @@ -128754,6 +128754,18 @@ var AnalysisKind = /* @__PURE__ */ ((AnalysisKind2) => { return AnalysisKind2; })(AnalysisKind || {}); var supportedAnalysisKinds = new Set(Object.values(AnalysisKind)); +var CodeScanningTarget = { + name: "code scanning", + target: "PUT /repos/:owner/:repo/code-scanning/analysis" /* CODE_SCANNING */, + sarifPredicate: (name) => name.endsWith(".sarif") && !CodeQualityTarget.sarifPredicate(name), + sentinelPrefix: "CODEQL_UPLOAD_SARIF_" +}; +var CodeQualityTarget = { + name: "code quality", + target: "PUT /repos/:owner/:repo/code-quality/analysis" /* CODE_QUALITY */, + sarifPredicate: (name) => name.endsWith(".quality.sarif"), + sentinelPrefix: "CODEQL_UPLOAD_QUALITY_SARIF_" +}; // src/caching-utils.ts var core6 = __toESM(require_core()); @@ -132980,18 +132992,6 @@ function buildPayload(commitOid, ref, analysisKey, analysisName, zippedSarif, wo } return payloadObj; } -var CodeScanningTarget = { - name: "code scanning", - target: "PUT /repos/:owner/:repo/code-scanning/analysis" /* CODE_SCANNING */, - sarifPredicate: (name) => name.endsWith(".sarif") && !CodeQualityTarget.sarifPredicate(name), - sentinelPrefix: "CODEQL_UPLOAD_SARIF_" -}; -var CodeQualityTarget = { - name: "code quality", - target: "PUT /repos/:owner/:repo/code-quality/analysis" /* CODE_QUALITY */, - sarifPredicate: (name) => name.endsWith(".quality.sarif"), - sentinelPrefix: "CODEQL_UPLOAD_QUALITY_SARIF_" -}; async function uploadFiles(inputSarifPath, checkoutPath, category, features, logger, uploadTarget) { const sarifPaths = getSarifFilePaths( inputSarifPath, diff --git a/lib/upload-lib.js b/lib/upload-lib.js index b23e8262e..d18597ef8 100644 --- a/lib/upload-lib.js +++ b/lib/upload-lib.js @@ -84778,10 +84778,7 @@ var require_sarif_schema_2_1_0 = __commonJS({ // src/upload-lib.ts var upload_lib_exports = {}; __export(upload_lib_exports, { - CodeQualityTarget: () => CodeQualityTarget, - CodeScanningTarget: () => CodeScanningTarget, InvalidSarifUploadError: () => InvalidSarifUploadError, - SARIF_UPLOAD_ENDPOINT: () => SARIF_UPLOAD_ENDPOINT, buildPayload: () => buildPayload, findSarifFilesInDir: () => findSarifFilesInDir, getSarifFilePaths: () => getSarifFilePaths, @@ -88493,6 +88490,26 @@ async function runTool(cmd, args = [], opts = {}) { return stdout; } +// src/analyses.ts +var AnalysisKind = /* @__PURE__ */ ((AnalysisKind2) => { + AnalysisKind2["CodeScanning"] = "code-scanning"; + AnalysisKind2["CodeQuality"] = "code-quality"; + return AnalysisKind2; +})(AnalysisKind || {}); +var supportedAnalysisKinds = new Set(Object.values(AnalysisKind)); +var CodeScanningTarget = { + name: "code scanning", + target: "PUT /repos/:owner/:repo/code-scanning/analysis" /* CODE_SCANNING */, + sarifPredicate: (name) => name.endsWith(".sarif") && !CodeQualityTarget.sarifPredicate(name), + sentinelPrefix: "CODEQL_UPLOAD_SARIF_" +}; +var CodeQualityTarget = { + name: "code quality", + target: "PUT /repos/:owner/:repo/code-quality/analysis" /* CODE_QUALITY */, + sarifPredicate: (name) => name.endsWith(".quality.sarif"), + sentinelPrefix: "CODEQL_UPLOAD_QUALITY_SARIF_" +}; + // src/api-client.ts var core5 = __toESM(require_core()); var githubUtils = __toESM(require_utils4()); @@ -88877,14 +88894,6 @@ var fs7 = __toESM(require("fs")); var path9 = __toESM(require("path")); var semver4 = __toESM(require_semver2()); -// src/analyses.ts -var AnalysisKind = /* @__PURE__ */ ((AnalysisKind2) => { - AnalysisKind2["CodeScanning"] = "code-scanning"; - AnalysisKind2["CodeQuality"] = "code-quality"; - return AnalysisKind2; -})(AnalysisKind || {}); -var supportedAnalysisKinds = new Set(Object.values(AnalysisKind)); - // src/caching-utils.ts var core6 = __toESM(require_core()); @@ -92203,11 +92212,6 @@ function getAutomationID(category, analysis_key, environment) { } return computeAutomationID(analysis_key, environment); } -var SARIF_UPLOAD_ENDPOINT = /* @__PURE__ */ ((SARIF_UPLOAD_ENDPOINT2) => { - SARIF_UPLOAD_ENDPOINT2["CODE_SCANNING"] = "PUT /repos/:owner/:repo/code-scanning/analysis"; - SARIF_UPLOAD_ENDPOINT2["CODE_QUALITY"] = "PUT /repos/:owner/:repo/code-quality/analysis"; - return SARIF_UPLOAD_ENDPOINT2; -})(SARIF_UPLOAD_ENDPOINT || {}); async function uploadPayload(payload, repositoryNwo, logger, target) { logger.info("Uploading results"); if (isInTestMode()) { @@ -92376,18 +92380,6 @@ function buildPayload(commitOid, ref, analysisKey, analysisName, zippedSarif, wo } return payloadObj; } -var CodeScanningTarget = { - name: "code scanning", - target: "PUT /repos/:owner/:repo/code-scanning/analysis" /* CODE_SCANNING */, - sarifPredicate: (name) => name.endsWith(".sarif") && !CodeQualityTarget.sarifPredicate(name), - sentinelPrefix: "CODEQL_UPLOAD_SARIF_" -}; -var CodeQualityTarget = { - name: "code quality", - target: "PUT /repos/:owner/:repo/code-quality/analysis" /* CODE_QUALITY */, - sarifPredicate: (name) => name.endsWith(".quality.sarif"), - sentinelPrefix: "CODEQL_UPLOAD_QUALITY_SARIF_" -}; async function uploadFiles(inputSarifPath, checkoutPath, category, features, logger, uploadTarget) { const sarifPaths = getSarifFilePaths( inputSarifPath, @@ -92630,10 +92622,7 @@ function filterAlertsByDiffRange(logger, sarif) { } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { - CodeQualityTarget, - CodeScanningTarget, InvalidSarifUploadError, - SARIF_UPLOAD_ENDPOINT, buildPayload, findSarifFilesInDir, getSarifFilePaths, diff --git a/lib/upload-sarif-action.js b/lib/upload-sarif-action.js index 6665c2ac5..91eec037a 100644 --- a/lib/upload-sarif-action.js +++ b/lib/upload-sarif-action.js @@ -88718,6 +88718,26 @@ function fixCodeQualityCategory(logger, category) { return category; } +// src/analyses.ts +var AnalysisKind = /* @__PURE__ */ ((AnalysisKind2) => { + AnalysisKind2["CodeScanning"] = "code-scanning"; + AnalysisKind2["CodeQuality"] = "code-quality"; + return AnalysisKind2; +})(AnalysisKind || {}); +var supportedAnalysisKinds = new Set(Object.values(AnalysisKind)); +var CodeScanningTarget = { + name: "code scanning", + target: "PUT /repos/:owner/:repo/code-scanning/analysis" /* CODE_SCANNING */, + sarifPredicate: (name) => name.endsWith(".sarif") && !CodeQualityTarget.sarifPredicate(name), + sentinelPrefix: "CODEQL_UPLOAD_SARIF_" +}; +var CodeQualityTarget = { + name: "code quality", + target: "PUT /repos/:owner/:repo/code-quality/analysis" /* CODE_QUALITY */, + sarifPredicate: (name) => name.endsWith(".quality.sarif"), + sentinelPrefix: "CODEQL_UPLOAD_QUALITY_SARIF_" +}; + // src/api-client.ts var core5 = __toESM(require_core()); var githubUtils = __toESM(require_utils4()); @@ -89585,14 +89605,6 @@ var fs8 = __toESM(require("fs")); var path10 = __toESM(require("path")); var semver4 = __toESM(require_semver2()); -// src/analyses.ts -var AnalysisKind = /* @__PURE__ */ ((AnalysisKind2) => { - AnalysisKind2["CodeScanning"] = "code-scanning"; - AnalysisKind2["CodeQuality"] = "code-quality"; - return AnalysisKind2; -})(AnalysisKind || {}); -var supportedAnalysisKinds = new Set(Object.values(AnalysisKind)); - // src/caching-utils.ts var core8 = __toESM(require_core()); @@ -93053,18 +93065,6 @@ function buildPayload(commitOid, ref, analysisKey, analysisName, zippedSarif, wo } return payloadObj; } -var CodeScanningTarget = { - name: "code scanning", - target: "PUT /repos/:owner/:repo/code-scanning/analysis" /* CODE_SCANNING */, - sarifPredicate: (name) => name.endsWith(".sarif") && !CodeQualityTarget.sarifPredicate(name), - sentinelPrefix: "CODEQL_UPLOAD_SARIF_" -}; -var CodeQualityTarget = { - name: "code quality", - target: "PUT /repos/:owner/:repo/code-quality/analysis" /* CODE_QUALITY */, - sarifPredicate: (name) => name.endsWith(".quality.sarif"), - sentinelPrefix: "CODEQL_UPLOAD_QUALITY_SARIF_" -}; async function uploadFiles(inputSarifPath, checkoutPath, category, features, logger, uploadTarget) { const sarifPaths = getSarifFilePaths( inputSarifPath, diff --git a/src/analyses.ts b/src/analyses.ts index e80cdfb20..0d8e16445 100644 --- a/src/analyses.ts +++ b/src/analyses.ts @@ -41,3 +41,34 @@ export async function parseAnalysisKinds( /** The queries to use for Code Quality analyses. */ export const codeQualityQueries: string[] = ["code-quality"]; + +// Enumerates API endpoints that accept SARIF files. +export enum SARIF_UPLOAD_ENDPOINT { + CODE_SCANNING = "PUT /repos/:owner/:repo/code-scanning/analysis", + CODE_QUALITY = "PUT /repos/:owner/:repo/code-quality/analysis", +} + +// Represents configurations for different services that we can upload SARIF to. +export interface UploadTarget { + name: string; + target: SARIF_UPLOAD_ENDPOINT; + sarifPredicate: (name: string) => boolean; + sentinelPrefix: string; +} + +// Represents the Code Scanning upload target. +export const CodeScanningTarget: UploadTarget = { + name: "code scanning", + target: SARIF_UPLOAD_ENDPOINT.CODE_SCANNING, + sarifPredicate: (name) => + name.endsWith(".sarif") && !CodeQualityTarget.sarifPredicate(name), + sentinelPrefix: "CODEQL_UPLOAD_SARIF_", +}; + +// Represents the Code Quality upload target. +export const CodeQualityTarget: UploadTarget = { + name: "code quality", + target: SARIF_UPLOAD_ENDPOINT.CODE_QUALITY, + sarifPredicate: (name) => name.endsWith(".quality.sarif"), + sentinelPrefix: "CODEQL_UPLOAD_QUALITY_SARIF_", +}; diff --git a/src/analyze-action.ts b/src/analyze-action.ts index 87af6fcca..24da7e876 100644 --- a/src/analyze-action.ts +++ b/src/analyze-action.ts @@ -5,6 +5,7 @@ import { performance } from "perf_hooks"; import * as core from "@actions/core"; import * as actionsUtil from "./actions-util"; +import * as analyses from "./analyses"; import { CodeQLAnalysisError, dbIsFinalized, @@ -332,7 +333,7 @@ async function run() { actionsUtil.getOptionalInput("category"), features, logger, - uploadLib.CodeScanningTarget, + analyses.CodeScanningTarget, ); core.setOutput("sarif-id", uploadResult.sarifID); @@ -346,7 +347,7 @@ async function run() { ), features, logger, - uploadLib.CodeQualityTarget, + analyses.CodeQualityTarget, ); core.setOutput("quality-sarif-id", qualityUploadResult.sarifID); } diff --git a/src/init-action-post-helper.ts b/src/init-action-post-helper.ts index b04e62c29..16822aa49 100644 --- a/src/init-action-post-helper.ts +++ b/src/init-action-post-helper.ts @@ -4,6 +4,7 @@ import * as core from "@actions/core"; import * as github from "@actions/github"; import * as actionsUtil from "./actions-util"; +import { CodeScanningTarget } from "./analyses"; import { getApiClient } from "./api-client"; import { CodeQL, getCodeQL } from "./codeql"; import { Config } from "./config-utils"; @@ -104,7 +105,7 @@ async function maybeUploadFailedSarif( category, features, logger, - uploadLib.CodeScanningTarget, + CodeScanningTarget, ); await uploadLib.waitForProcessing( repositoryNwo, diff --git a/src/upload-lib.test.ts b/src/upload-lib.test.ts index 96f132b21..9848d9a71 100644 --- a/src/upload-lib.test.ts +++ b/src/upload-lib.test.ts @@ -3,6 +3,7 @@ import * as path from "path"; import test from "ava"; +import { CodeQualityTarget, CodeScanningTarget } from "./analyses"; import { getRunnerLogger, Logger } from "./logging"; import { setupTests } from "./testing-utils"; import * as uploadLib from "./upload-lib"; @@ -128,7 +129,7 @@ test("finding SARIF files", async (t) => { const sarifFiles = uploadLib.findSarifFilesInDir( tmpDir, - uploadLib.CodeScanningTarget.sarifPredicate, + CodeScanningTarget.sarifPredicate, ); t.deepEqual(sarifFiles, [ @@ -140,7 +141,7 @@ test("finding SARIF files", async (t) => { const qualitySarifFiles = uploadLib.findSarifFilesInDir( tmpDir, - uploadLib.CodeQualityTarget.sarifPredicate, + CodeQualityTarget.sarifPredicate, ); t.deepEqual(qualitySarifFiles, [ @@ -335,7 +336,7 @@ test("validateUniqueCategory with different prefixes", (t) => { t.notThrows(() => uploadLib.validateUniqueCategory( createMockSarif(), - uploadLib.CodeQualityTarget.sentinelPrefix, + CodeQualityTarget.sentinelPrefix, ), ); }); diff --git a/src/upload-lib.ts b/src/upload-lib.ts index e87dad839..d21797903 100644 --- a/src/upload-lib.ts +++ b/src/upload-lib.ts @@ -8,6 +8,7 @@ import { OctokitResponse } from "@octokit/types"; import * as jsonschema from "jsonschema"; import * as actionsUtil from "./actions-util"; +import * as analyses from "./analyses"; import * as api from "./api-client"; import { getGitHubVersion, wrapApiConfigurationError } from "./api-client"; import { CodeQL, getCodeQL } from "./codeql"; @@ -345,19 +346,13 @@ function getAutomationID( return api.computeAutomationID(analysis_key, environment); } -// Enumerates API endpoints that accept SARIF files. -export enum SARIF_UPLOAD_ENDPOINT { - CODE_SCANNING = "PUT /repos/:owner/:repo/code-scanning/analysis", - CODE_QUALITY = "PUT /repos/:owner/:repo/code-quality/analysis", -} - // Upload the given payload. // If the request fails then this will retry a small number of times. async function uploadPayload( payload: any, repositoryNwo: RepositoryNwo, logger: Logger, - target: SARIF_UPLOAD_ENDPOINT, + target: analyses.SARIF_UPLOAD_ENDPOINT, ): Promise { logger.info("Uploading results"); @@ -616,31 +611,6 @@ export function buildPayload( return payloadObj; } -// Represents configurations for different services that we can upload SARIF to. -export interface UploadTarget { - name: string; - target: SARIF_UPLOAD_ENDPOINT; - sarifPredicate: (name: string) => boolean; - sentinelPrefix: string; -} - -// Represents the Code Scanning upload target. -export const CodeScanningTarget: UploadTarget = { - name: "code scanning", - target: SARIF_UPLOAD_ENDPOINT.CODE_SCANNING, - sarifPredicate: (name) => - name.endsWith(".sarif") && !CodeQualityTarget.sarifPredicate(name), - sentinelPrefix: "CODEQL_UPLOAD_SARIF_", -}; - -// Represents the Code Quality upload target. -export const CodeQualityTarget: UploadTarget = { - name: "code quality", - target: SARIF_UPLOAD_ENDPOINT.CODE_QUALITY, - sarifPredicate: (name) => name.endsWith(".quality.sarif"), - sentinelPrefix: "CODEQL_UPLOAD_QUALITY_SARIF_", -}; - /** * Uploads a single SARIF file or a directory of SARIF files depending on what `inputSarifPath` refers * to. @@ -651,7 +621,7 @@ export async function uploadFiles( category: string | undefined, features: FeatureEnablement, logger: Logger, - uploadTarget: UploadTarget, + uploadTarget: analyses.UploadTarget, ): Promise { const sarifPaths = getSarifFilePaths( inputSarifPath, @@ -677,7 +647,7 @@ export async function uploadSpecifiedFiles( category: string | undefined, features: FeatureEnablement, logger: Logger, - uploadTarget: UploadTarget = CodeScanningTarget, + uploadTarget: analyses.UploadTarget = analyses.CodeScanningTarget, ): Promise { logger.startGroup(`Uploading ${uploadTarget.name} results`); logger.info(`Processing sarif files: ${JSON.stringify(sarifPaths)}`); @@ -943,7 +913,7 @@ function handleProcessingResultForUnsuccessfulExecution( export function validateUniqueCategory( sarif: SarifFile, - sentinelPrefix: string = CodeScanningTarget.sentinelPrefix, + sentinelPrefix: string = analyses.CodeScanningTarget.sentinelPrefix, ): void { // duplicate categories are allowed in the same sarif file // but not across multiple sarif files diff --git a/src/upload-sarif-action.ts b/src/upload-sarif-action.ts index 25e884ea0..e18d96b14 100644 --- a/src/upload-sarif-action.ts +++ b/src/upload-sarif-action.ts @@ -4,6 +4,7 @@ import * as core from "@actions/core"; import * as actionsUtil from "./actions-util"; import { getActionVersion, getTemporaryDirectory } from "./actions-util"; +import * as analyses from "./analyses"; import { getGitHubVersion } from "./api-client"; import { Features } from "./feature-flags"; import { Logger, getActionsLogger } from "./logging"; @@ -95,7 +96,7 @@ async function run() { category, features, logger, - upload_lib.CodeScanningTarget, + analyses.CodeScanningTarget, ); core.setOutput("sarif-id", uploadResult.sarifID); @@ -105,7 +106,7 @@ async function run() { if (fs.lstatSync(sarifPath).isDirectory()) { const qualitySarifFiles = upload_lib.findSarifFilesInDir( sarifPath, - upload_lib.CodeQualityTarget.sarifPredicate, + analyses.CodeQualityTarget.sarifPredicate, ); if (qualitySarifFiles.length !== 0) { @@ -115,7 +116,7 @@ async function run() { actionsUtil.fixCodeQualityCategory(logger, category), features, logger, - upload_lib.CodeQualityTarget, + analyses.CodeQualityTarget, ); } }