Use GHEC-DR URL in file blob URL

This commit is contained in:
Koen Vlaswinkel
2024-04-24 13:36:16 +02:00
parent ca092a1623
commit 871fc0b817
5 changed files with 18 additions and 9 deletions

View File

@@ -865,8 +865,10 @@ async function activateWithInstalledDistribution(
"variant-analyses",
);
await ensureDir(variantAnalysisStorageDir);
const variantAnalysisConfig = new VariantAnalysisConfigListener();
const variantAnalysisResultsManager = new VariantAnalysisResultsManager(
cliServer,
variantAnalysisConfig,
extLogger,
);
@@ -876,7 +878,7 @@ async function activateWithInstalledDistribution(
variantAnalysisStorageDir,
variantAnalysisResultsManager,
dbModule.dbManager,
new VariantAnalysisConfigListener(),
variantAnalysisConfig,
);
ctx.subscriptions.push(variantAnalysisManager);
ctx.subscriptions.push(variantAnalysisResultsManager);

View File

@@ -23,6 +23,7 @@ import { DisposableObject } from "../common/disposable-object";
import { EventEmitter } from "vscode";
import { unzipToDirectoryConcurrently } from "../common/unzip-concurrently";
import { readRepoTask, writeRepoTask } from "./repo-tasks-store";
import type { VariantAnalysisConfig } from "../config";
type CacheKey = `${number}/${string}`;
@@ -62,6 +63,7 @@ export class VariantAnalysisResultsManager extends DisposableObject {
constructor(
private readonly cliServer: CodeQLCliServer,
private readonly config: VariantAnalysisConfig,
private readonly logger: Logger,
) {
super();
@@ -192,7 +194,7 @@ export class VariantAnalysisResultsManager extends DisposableObject {
throw new Error("Missing database commit SHA");
}
const fileLinkPrefix = this.createGitHubDotcomFileLinkPrefix(
const fileLinkPrefix = this.createGitHubFileLinkPrefix(
repoTask.repository.fullName,
repoTask.databaseCommitSha,
);
@@ -283,11 +285,11 @@ export class VariantAnalysisResultsManager extends DisposableObject {
return join(variantAnalysisStoragePath, fullName);
}
private createGitHubDotcomFileLinkPrefix(
fullName: string,
sha: string,
): string {
return `https://github.com/${fullName}/blob/${sha}`;
private createGitHubFileLinkPrefix(fullName: string, sha: string): string {
return new URL(
`/${fullName}/blob/${sha}`,
this.config.githubUrl,
).toString();
}
public removeAnalysisResults(variantAnalysis: VariantAnalysis) {

View File

@@ -78,11 +78,12 @@ describe("Variant Analysis Manager", () => {
new DbConfigStore(app),
createMockVariantAnalysisConfig(),
);
const variantAnalysisConfig = createMockVariantAnalysisConfig();
variantAnalysisResultsManager = new VariantAnalysisResultsManager(
cli,
variantAnalysisConfig,
extLogger,
);
const variantAnalysisConfig = createMockVariantAnalysisConfig();
variantAnalysisManager = new VariantAnalysisManager(
app,
cli,

View File

@@ -16,6 +16,7 @@ import type {
VariantAnalysisScannedRepositoryResult,
} from "../../../../src/variant-analysis/shared/variant-analysis";
import { mockedObject } from "../../utils/mocking.helpers";
import { createMockVariantAnalysisConfig } from "../../../factories/config";
jest.setTimeout(10_000);
@@ -27,8 +28,10 @@ describe(VariantAnalysisResultsManager.name, () => {
variantAnalysisId = faker.number.int();
const cli = mockedObject<CodeQLCliServer>({});
const variantAnalysisConfig = createMockVariantAnalysisConfig();
variantAnalysisResultsManager = new VariantAnalysisResultsManager(
cli,
variantAnalysisConfig,
extLogger,
);
});

View File

@@ -56,11 +56,12 @@ describe("Variant Analysis Manager", () => {
new DbConfigStore(app),
createMockVariantAnalysisConfig(),
);
const variantAnalysisConfig = createMockVariantAnalysisConfig();
const variantAnalysisResultsManager = new VariantAnalysisResultsManager(
cli,
variantAnalysisConfig,
extLogger,
);
const variantAnalysisConfig = createMockVariantAnalysisConfig();
variantAnalysisManager = new VariantAnalysisManager(
app,
cli,