diff --git a/package.json b/package.json index 16cb91b838..5241f65756 100644 --- a/package.json +++ b/package.json @@ -3552,7 +3552,7 @@ }, { "command": "pr.copyPrLink", - "when": "webviewId == PullRequestOverview && github:copyMenu" + "when": "(webviewId == PullRequestOverview || webviewId == IssueOverview) && github:copyMenu" }, { "command": "pr.copyVscodeDevPrLink", diff --git a/src/commands.ts b/src/commands.ts index c59075f7a0..ec59474778 100644 --- a/src/commands.ts +++ b/src/commands.ts @@ -1585,12 +1585,16 @@ ${contents} context.subscriptions.push( vscode.commands.registerCommand('pr.copyPrLink', async (params: OverviewContext | undefined) => { - let pr: PullRequestModel | undefined; + let prOrIssue: PullRequestModel | IssueModel | undefined; if (params) { - pr = await reposManager.getManagerForRepository(params.owner, params.repo)?.resolvePullRequest(params.owner, params.repo, params.number, true); + const folderManager = reposManager.getManagerForRepository(params.owner, params.repo); + prOrIssue = await folderManager?.resolvePullRequest(params.owner, params.repo, params.number, true); + if (!prOrIssue) { + prOrIssue = await folderManager?.resolveIssue(params.owner, params.repo, params.number); + } } - if (pr) { - return vscode.env.clipboard.writeText(pr.html_url); + if (prOrIssue) { + return vscode.env.clipboard.writeText(prOrIssue.html_url); } }));