From 13a1c3861d2a3c4b4d80e6092a4c23d43ec73133 Mon Sep 17 00:00:00 2001 From: Alex Ross <38270282+alexr00@users.noreply.github.com> Date: Wed, 9 Sep 2026 12:50:56 +0200 Subject: [PATCH 1/4] Change default value of `openPullLinks` --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 38aac1514c..acd59913be 100644 --- a/package.json +++ b/package.json @@ -358,7 +358,7 @@ }, "githubPullRequests.openPullLinks": { "type": "boolean", - "default": true, + "default": false, "scope": "application", "markdownDescription": "%githubPullRequests.openPullLinks.description%", "tags": [ From 2b2414b601237b0c82d782f76e2bfcf349608f97 Mon Sep 17 00:00:00 2001 From: Alex Ross <38270282+alexr00@users.noreply.github.com> Date: Wed, 9 Sep 2026 12:55:43 +0200 Subject: [PATCH 2/4] CCR feedback --- src/github/externalUriOpener.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/github/externalUriOpener.ts b/src/github/externalUriOpener.ts index 56113d3566..a83c329b85 100644 --- a/src/github/externalUriOpener.ts +++ b/src/github/externalUriOpener.ts @@ -79,7 +79,7 @@ class GitHubIssueOrPullRequestExternalUriOpener extends Disposable implements vs } private isOpenPullLinksEnabled(): boolean { - return vscode.workspace.getConfiguration(PR_SETTINGS_NAMESPACE).get(OPEN_PULL_LINKS, true); + return vscode.workspace.getConfiguration(PR_SETTINGS_NAMESPACE).get(OPEN_PULL_LINKS, false); } } From e38f3d0a79a5ae5b32d471c0f832e1c7deec1a23 Mon Sep 17 00:00:00 2001 From: Alex Ross <38270282+alexr00@users.noreply.github.com> Date: Wed, 9 Sep 2026 14:02:08 +0200 Subject: [PATCH 3/4] Fix test --- src/test/github/externalUriOpener.test.ts | 43 ++++++++++++++--------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/src/test/github/externalUriOpener.test.ts b/src/test/github/externalUriOpener.test.ts index 8620234300..811f585d59 100644 --- a/src/test/github/externalUriOpener.test.ts +++ b/src/test/github/externalUriOpener.test.ts @@ -7,6 +7,7 @@ import { default as assert } from 'assert'; import { createSandbox, SinonSandbox } from 'sinon'; import * as vscode from 'vscode'; import { RemoteOnlyRepository } from '../../api/remoteOnlyRepository'; +import { OPEN_PULL_LINKS, PR_SETTINGS_NAMESPACE } from '../../common/settingKeys'; import { CredentialStore } from '../../github/credentials'; import { registerGitHubIssueOrPullRequestExternalUriOpener } from '../../github/externalUriOpener'; import { FolderRepositoryManager } from '../../github/folderRepositoryManager'; @@ -32,7 +33,11 @@ describe('GitHubIssueOrPullRequestExternalUriOpener', () => { const credentialStore = new CredentialStore(telemetry, context); const repositoriesManager = new RepositoriesManager(credentialStore, telemetry); const folderRepositoryManagerResolver = new FolderRepositoryManagerResolver(context, repositoriesManager, telemetry); + const configuration = vscode.workspace.getConfiguration(PR_SETTINGS_NAMESPACE); + const previousSettingValue = configuration.inspect(OPEN_PULL_LINKS)?.globalValue; let opener: vscode.ExternalUriOpener | undefined; + let registration: vscode.Disposable | undefined; + let cancellation: vscode.CancellationTokenSource | undefined; sandbox.stub(vscode.window, 'registerExternalUriOpener').callsFake((_id, value) => { opener = value; return new vscode.Disposable(() => undefined); @@ -43,22 +48,28 @@ describe('GitHubIssueOrPullRequestExternalUriOpener', () => { }); sandbox.stub(vscode.window, 'showErrorMessage').resolves(undefined); - const registration = registerGitHubIssueOrPullRequestExternalUriOpener( - context, - folderRepositoryManagerResolver, - telemetry, - ); - const uri = vscode.Uri.parse('https://github.com/microsoft/vscode/issues/1'); - assert.ok(opener); - const cancellation = new vscode.CancellationTokenSource(); - await opener.openExternalUri(uri, { sourceUri: uri }, cancellation.token); - cancellation.dispose(); + try { + await configuration.update(OPEN_PULL_LINKS, true, vscode.ConfigurationTarget.Global); + registration = registerGitHubIssueOrPullRequestExternalUriOpener( + context, + folderRepositoryManagerResolver, + telemetry, + ); + const uri = vscode.Uri.parse('https://github.com/microsoft/vscode/issues/1'); + assert.ok(opener); + cancellation = new vscode.CancellationTokenSource(); + await opener.openExternalUri(uri, { sourceUri: uri }, cancellation.token); - assert.strictEqual(repositoriesManager.folderManagers.length, 0); - assert.strictEqual(resolveIssue.callCount, 1); - registration.dispose(); - folderRepositoryManagerResolver.dispose(); - repositoriesManager.dispose(); - credentialStore.dispose(); + assert.strictEqual(repositoriesManager.folderManagers.length, 0); + assert.strictEqual(resolveIssue.callCount, 1); + } finally { + cancellation?.dispose(); + registration?.dispose(); + await configuration.update(OPEN_PULL_LINKS, previousSettingValue, vscode.ConfigurationTarget.Global); + folderRepositoryManagerResolver.dispose(); + repositoriesManager.dispose(); + credentialStore.dispose(); + context.dispose(); + } }); }); From 468b076a612b7e721806a68b697c0e71c574e8da Mon Sep 17 00:00:00 2001 From: Alex Ross <38270282+alexr00@users.noreply.github.com> Date: Wed, 9 Sep 2026 14:12:40 +0200 Subject: [PATCH 4/4] changelog text --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c58815d20..5536920530 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ - Speed up opening pull request webviews. - Always show abbreviated commit SHAs in the pull request commits tree. -- Open canonical GitHub pull request and issue URLs in the Pull Requests extension. Can be disabled with `githubPullRequests.openPullLinks`. +- Open canonical GitHub pull request and issue URLs in the Pull Requests extension. Can be toggled with `githubPullRequests.openPullLinks`. ### Fixes