From ca092a1623f0d42d2a07496722dac6fb7068250f Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Wed, 24 Apr 2024 13:33:25 +0200 Subject: [PATCH] Use GHEC-DR URL in Actions workflow run URL --- .../src/query-history/query-history-info.ts | 6 +++++- .../shared/variant-analysis.ts | 6 +++++- .../variant-analysis-manager.ts | 5 ++++- .../test/unit-tests/variant-analysis.test.ts | 20 +++++++++++++++++-- 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/extensions/ql-vscode/src/query-history/query-history-info.ts b/extensions/ql-vscode/src/query-history/query-history-info.ts index d426f2770..62d722dbb 100644 --- a/extensions/ql-vscode/src/query-history/query-history-info.ts +++ b/extensions/ql-vscode/src/query-history/query-history-info.ts @@ -7,6 +7,7 @@ import { getActionsWorkflowRunUrl as getVariantAnalysisActionsWorkflowRunUrl, } from "../variant-analysis/shared/variant-analysis"; import type { QueryLanguage } from "../common/query-language"; +import { getGitHubInstanceUrl } from "../config"; export type QueryHistoryInfo = LocalQueryInfo | VariantAnalysisHistoryItem; @@ -79,5 +80,8 @@ export function buildRepoLabel(item: VariantAnalysisHistoryItem): string { export function getActionsWorkflowRunUrl( item: VariantAnalysisHistoryItem, ): string { - return getVariantAnalysisActionsWorkflowRunUrl(item.variantAnalysis); + return getVariantAnalysisActionsWorkflowRunUrl( + item.variantAnalysis, + getGitHubInstanceUrl(), + ); } diff --git a/extensions/ql-vscode/src/variant-analysis/shared/variant-analysis.ts b/extensions/ql-vscode/src/variant-analysis/shared/variant-analysis.ts index 16da2ecf4..2bb3a60e9 100644 --- a/extensions/ql-vscode/src/variant-analysis/shared/variant-analysis.ts +++ b/extensions/ql-vscode/src/variant-analysis/shared/variant-analysis.ts @@ -295,10 +295,14 @@ export function getSkippedRepoCount( export function getActionsWorkflowRunUrl( variantAnalysis: VariantAnalysis, + githubUrl: URL, ): string { const { actionsWorkflowRunId, controllerRepo: { fullName }, } = variantAnalysis; - return `https://github.com/${fullName}/actions/runs/${actionsWorkflowRunId}`; + return new URL( + `/${fullName}/actions/runs/${actionsWorkflowRunId}`, + githubUrl, + ).toString(); } diff --git a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts index 4bfe3274c..539233966 100644 --- a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts +++ b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts @@ -956,7 +956,10 @@ export class VariantAnalysisManager throw new Error(`No variant analysis with id: ${variantAnalysisId}`); } - const actionsWorkflowRunUrl = getActionsWorkflowRunUrl(variantAnalysis); + const actionsWorkflowRunUrl = getActionsWorkflowRunUrl( + variantAnalysis, + this.config.githubUrl, + ); await this.app.commands.execute( "vscode.open", diff --git a/extensions/ql-vscode/test/unit-tests/variant-analysis.test.ts b/extensions/ql-vscode/test/unit-tests/variant-analysis.test.ts index 8167070d8..1f95dd971 100644 --- a/extensions/ql-vscode/test/unit-tests/variant-analysis.test.ts +++ b/extensions/ql-vscode/test/unit-tests/variant-analysis.test.ts @@ -151,13 +151,29 @@ describe("isVariantAnalysisComplete", () => { }); describe("getActionsWorkflowRunUrl", () => { - it("should get the run url", () => { + it("should get the run url on github.com", () => { const variantAnalysis = createMockVariantAnalysis({}); - const actionsWorkflowRunUrl = getActionsWorkflowRunUrl(variantAnalysis); + const actionsWorkflowRunUrl = getActionsWorkflowRunUrl( + variantAnalysis, + new URL("https://github.com"), + ); expect(actionsWorkflowRunUrl).toBe( `https://github.com/${variantAnalysis.controllerRepo.fullName}/actions/runs/${variantAnalysis.actionsWorkflowRunId}`, ); }); + + it("should get the run url on GHEC-DR", () => { + const variantAnalysis = createMockVariantAnalysis({}); + + const actionsWorkflowRunUrl = getActionsWorkflowRunUrl( + variantAnalysis, + new URL("https://tenant.ghe.com"), + ); + + expect(actionsWorkflowRunUrl).toBe( + `https://tenant.ghe.com/${variantAnalysis.controllerRepo.fullName}/actions/runs/${variantAnalysis.actionsWorkflowRunId}`, + ); + }); });