diff --git a/extensions/ql-vscode/src/pure/sarif-utils.ts b/extensions/ql-vscode/src/pure/sarif-utils.ts index c44b12b07..c0abc75e9 100644 --- a/extensions/ql-vscode/src/pure/sarif-utils.ts +++ b/extensions/ql-vscode/src/pure/sarif-utils.ts @@ -1,5 +1,5 @@ import * as Sarif from 'sarif'; -import { AnalysisResults, HighlightedRegion } from '../remote-queries/shared/analysis-result'; +import { HighlightedRegion } from '../remote-queries/shared/analysis-result'; import { ResolvableLocationValue } from './bqrs-cli-types'; export interface SarifLink { @@ -236,11 +236,3 @@ export function parseHighlightedLine( return { plainSection1, highlightedSection, plainSection2 }; } - -/** - * Returns the number of (raw + interpreted) results for an analysis. - */ -export const getAnalysisResultCount = (analysisResults: AnalysisResults): number => { - const rawResultCount = analysisResults.rawResults?.resultSet.rows.length || 0; - return analysisResults.interpretedResults.length + rawResultCount; -}; diff --git a/extensions/ql-vscode/src/remote-queries/remote-queries-markdown-generation.ts b/extensions/ql-vscode/src/remote-queries/remote-queries-markdown-generation.ts index e42e3d7e8..2fb4fecc5 100644 --- a/extensions/ql-vscode/src/remote-queries/remote-queries-markdown-generation.ts +++ b/extensions/ql-vscode/src/remote-queries/remote-queries-markdown-generation.ts @@ -1,7 +1,7 @@ import { createRemoteFileRef } from '../pure/location-link-utils'; -import { getAnalysisResultCount, parseHighlightedLine, shouldHighlightLine } from '../pure/sarif-utils'; +import { parseHighlightedLine, shouldHighlightLine } from '../pure/sarif-utils'; import { RemoteQuery } from './remote-query'; -import { AnalysisAlert, AnalysisResults, CodeSnippet, FileLink, HighlightedRegion } from './shared/analysis-result'; +import { AnalysisAlert, AnalysisResults, CodeSnippet, FileLink, getAnalysisResultCount, HighlightedRegion } from './shared/analysis-result'; // Each array item is a line of the markdown file. export type MarkdownFile = string[]; @@ -14,13 +14,13 @@ export function generateMarkdown(query: RemoteQuery, analysesResults: AnalysisRe // Generate summary file with links to individual files const summaryLines: MarkdownFile = generateMarkdownSummary(query); for (const analysisResult of analysesResults) { - if (analysisResult.interpretedResults.length === 0 && !analysisResult.rawResults) { + const resultsCount = getAnalysisResultCount(analysisResult); + if (resultsCount === 0) { continue; } // Append nwo and results count to the summary table const nwo = analysisResult.nwo; - const resultsCount = getAnalysisResultCount(analysisResult); const link = createGistRelativeLink(nwo); summaryLines.push(`| ${nwo} | [${resultsCount} result(s)](${link}) |`); diff --git a/extensions/ql-vscode/src/remote-queries/shared/analysis-result.ts b/extensions/ql-vscode/src/remote-queries/shared/analysis-result.ts index c40088391..6551dd8bc 100644 --- a/extensions/ql-vscode/src/remote-queries/shared/analysis-result.ts +++ b/extensions/ql-vscode/src/remote-queries/shared/analysis-result.ts @@ -78,3 +78,11 @@ export interface AnalysisMessageLocationToken { } export type ResultSeverity = 'Recommendation' | 'Warning' | 'Error'; + +/** + * Returns the number of (raw + interpreted) results for an analysis. + */ +export const getAnalysisResultCount = (analysisResults: AnalysisResults): number => { + const rawResultCount = analysisResults.rawResults?.resultSet.rows.length || 0; + return analysisResults.interpretedResults.length + rawResultCount; +}; diff --git a/extensions/ql-vscode/src/remote-queries/view/RemoteQueries.tsx b/extensions/ql-vscode/src/remote-queries/view/RemoteQueries.tsx index ea3b838ee..56c25ebf8 100644 --- a/extensions/ql-vscode/src/remote-queries/view/RemoteQueries.tsx +++ b/extensions/ql-vscode/src/remote-queries/view/RemoteQueries.tsx @@ -13,14 +13,13 @@ import HorizontalSpace from './HorizontalSpace'; import Badge from './Badge'; import ViewTitle from './ViewTitle'; import DownloadButton from './DownloadButton'; -import { AnalysisResults } from '../shared/analysis-result'; +import { AnalysisResults, getAnalysisResultCount } from '../shared/analysis-result'; import DownloadSpinner from './DownloadSpinner'; import CollapsibleItem from './CollapsibleItem'; import { AlertIcon, CodeSquareIcon, FileCodeIcon, RepoIcon, TerminalIcon } from '@primer/octicons-react'; import AnalysisAlertResult from './AnalysisAlertResult'; import RawResultsTable from './RawResultsTable'; import RepositoriesSearch from './RepositoriesSearch'; -import { getAnalysisResultCount } from '../../pure/sarif-utils'; const numOfReposInContractedMode = 10;