Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,7 @@
},
"githubPullRequests.openPullLinks": {
"type": "boolean",
"default": true,
"default": false,
"scope": "application",
Comment thread
alexr00 marked this conversation as resolved.
"markdownDescription": "%githubPullRequests.openPullLinks.description%",
"tags": [
Comment thread
alexr00 marked this conversation as resolved.
Expand Down
2 changes: 1 addition & 1 deletion src/github/externalUriOpener.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ class GitHubIssueOrPullRequestExternalUriOpener extends Disposable implements vs
}

private isOpenPullLinksEnabled(): boolean {
return vscode.workspace.getConfiguration(PR_SETTINGS_NAMESPACE).get<boolean>(OPEN_PULL_LINKS, true);
return vscode.workspace.getConfiguration(PR_SETTINGS_NAMESPACE).get<boolean>(OPEN_PULL_LINKS, false);
}

}
Expand Down
43 changes: 27 additions & 16 deletions src/test/github/externalUriOpener.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand All @@ -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<boolean>(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);
Expand All @@ -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();
}
Comment thread
alexr00 marked this conversation as resolved.
});
});