Skip to content

Commit 31ef6ae

Browse files
authored
Implement buildRepoLabel for variant analysis items
1 parent bd81d3c commit 31ef6ae

2 files changed

Lines changed: 24 additions & 14 deletions

File tree

extensions/ql-vscode/src/history-item-label-provider.ts

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { env } from 'vscode';
22
import * as path from 'path';
33
import { QueryHistoryConfig } from './config';
44
import { LocalQueryInfo } from './query-results';
5-
import { getRawQueryName, QueryHistoryInfo } from './query-history-info';
5+
import { buildRepoLabel, getRawQueryName, QueryHistoryInfo } from './query-history-info';
66
import { RemoteQueryHistoryItem } from './remote-queries/remote-query-history-item';
77
import { pluralize } from './helpers';
88
import { VariantAnalysisHistoryItem } from './remote-queries/variant-analysis-history-item';
@@ -79,23 +79,12 @@ export class HistoryItemLabelProvider {
7979
};
8080
}
8181

82-
// Return the number of repositories queried if available. Otherwise, use the controller repository name.
83-
private buildRepoLabel(item: RemoteQueryHistoryItem): string {
84-
const repositoryCount = item.remoteQuery.repositoryCount;
85-
86-
if (repositoryCount) {
87-
return pluralize(repositoryCount, 'repository', 'repositories');
88-
}
89-
90-
return `${item.remoteQuery.controllerRepository.owner}/${item.remoteQuery.controllerRepository.name}`;
91-
}
92-
9382
private getRemoteInterpolateReplacements(item: RemoteQueryHistoryItem): InterpolateReplacements {
9483
const resultCount = item.resultCount ? `(${pluralize(item.resultCount, 'result', 'results')})` : '';
9584
return {
9685
t: new Date(item.remoteQuery.executionStartTime).toLocaleString(env.language),
9786
q: `${item.remoteQuery.queryName} (${item.remoteQuery.language})`,
98-
d: this.buildRepoLabel(item),
87+
d: buildRepoLabel(item),
9988
r: resultCount,
10089
s: item.status,
10190
f: path.basename(item.remoteQuery.queryFilePath),
@@ -108,7 +97,7 @@ export class HistoryItemLabelProvider {
10897
return {
10998
t: new Date(item.variantAnalysis.executionStartTime).toLocaleString(env.language),
11099
q: `${item.variantAnalysis.query.name} (${item.variantAnalysis.query.language})`,
111-
d: 'TODO',
100+
d: buildRepoLabel(item),
112101
r: resultCount,
113102
s: item.status,
114103
f: path.basename(item.variantAnalysis.query.filePath),

extensions/ql-vscode/src/query-history-info.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import { RemoteQueryHistoryItem } from './remote-queries/remote-query-history-it
22
import { VariantAnalysisHistoryItem } from './remote-queries/variant-analysis-history-item';
33
import { LocalQueryInfo } from './query-results';
44
import { assertNever } from './pure/helpers-pure';
5+
import { pluralize } from './helpers';
6+
import { hasRepoScanCompleted } from './remote-queries/shared/variant-analysis';
57

68
export type QueryHistoryInfo = LocalQueryInfo | RemoteQueryHistoryItem | VariantAnalysisHistoryItem;
79

@@ -43,3 +45,22 @@ export function getQueryText(item: QueryHistoryInfo): string {
4345
assertNever(item);
4446
}
4547
}
48+
49+
export function buildRepoLabel(item: RemoteQueryHistoryItem | VariantAnalysisHistoryItem): string {
50+
if (item.t === 'remote') {
51+
// Return the number of repositories queried if available. Otherwise, use the controller repository name.
52+
const repositoryCount = item.remoteQuery.repositoryCount;
53+
54+
if (repositoryCount) {
55+
return pluralize(repositoryCount, 'repository', 'repositories');
56+
}
57+
return `${item.remoteQuery.controllerRepository.owner}/${item.remoteQuery.controllerRepository.name}`;
58+
} else if (item.t === 'variant-analysis') {
59+
const totalScannedRepositoryCount = item.variantAnalysis.scannedRepos?.length ?? 0;
60+
const completedRepositoryCount = item.variantAnalysis.scannedRepos?.filter(repo => hasRepoScanCompleted(repo)).length ?? 0;
61+
62+
return `${completedRepositoryCount}/${pluralize(totalScannedRepositoryCount, 'repository', 'repositories')}`; // e.g. "2/3 repositories"
63+
} else {
64+
assertNever(item);
65+
}
66+
}

0 commit comments

Comments
 (0)