Skip to content

Commit 7bbf652

Browse files
author
RMacfarlane
committed
Show no queries in VSO
1 parent 60f9b98 commit 7bbf652

4 files changed

Lines changed: 29 additions & 15 deletions

File tree

src/extension.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ async function init(context: vscode.ExtensionContext, git: ApiImpl, gitAPI: GitA
6262
}
6363
});
6464
const reviewManager = new ReviewManager(context, repository, prManager, tree, telemetry);
65-
tree.initialize(prManager);
65+
await tree.initialize(prManager);
6666
registerCommands(context, prManager, reviewManager, telemetry, credentialStore);
6767

6868
git.onDidChangeState(() => {

src/test/view/prsTree.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ describe('GitHub Pull Requests view', function() {
9595
repository.addRemote('origin', 'git@github.com:aaa/bbb');
9696

9797
const manager = new PullRequestManager(repository, telemetry, new ApiImpl(), credentialStore);
98-
provider.initialize(manager);
98+
await provider.initialize(manager);
9999

100100
const rootNodes = await provider.getChildren();
101101
assert.strictEqual(rootNodes.length, 1);
@@ -117,7 +117,7 @@ describe('GitHub Pull Requests view', function() {
117117
});
118118
sinon.stub(credentialStore, 'hasOctokit').returns(Promise.resolve(false));
119119
await manager.updateRepositories();
120-
provider.initialize(manager);
120+
await provider.initialize(manager);
121121

122122
const rootNodes = await provider.getChildren();
123123
assert.strictEqual(rootNodes.length, 1);
@@ -140,7 +140,7 @@ describe('GitHub Pull Requests view', function() {
140140
});
141141
sinon.stub(credentialStore, 'hasOctokit').returns(Promise.resolve(true));
142142
await manager.updateRepositories();
143-
provider.initialize(manager);
143+
await provider.initialize(manager);
144144

145145
const rootNodes = await provider.getChildren();
146146

@@ -207,7 +207,7 @@ describe('GitHub Pull Requests view', function() {
207207
});
208208
sinon.stub(credentialStore, 'hasOctokit').returns(Promise.resolve(true));
209209
await manager.updateRepositories();
210-
provider.initialize(manager);
210+
await provider.initialize(manager);
211211
manager.activePullRequest = pullRequest1;
212212

213213
const rootNodes = await provider.getChildren();

src/view/prsTreeDataProvider.ts

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export class PullRequestsTreeDataProvider implements vscode.TreeDataProvider<Tre
3030
private _prManager: PullRequestManager;
3131
private _initialized: boolean = false;
3232
private _queries: IQueryInfo[];
33+
private _isVSO: boolean | undefined;
3334

3435
get view(): vscode.TreeView<TreeNode> {
3536
return this._view;
@@ -86,7 +87,7 @@ export class PullRequestsTreeDataProvider implements vscode.TreeDataProvider<Tre
8687

8788
}
8889

89-
initialize(prManager: PullRequestManager) {
90+
async initialize(prManager: PullRequestManager) {
9091
if (this._initialized) {
9192
throw new Error('Tree has already been initialized!');
9293
}
@@ -96,20 +97,33 @@ export class PullRequestsTreeDataProvider implements vscode.TreeDataProvider<Tre
9697
this._disposables.push(this._prManager.onDidChangeState(() => {
9798
this._onDidChangeTreeData.fire();
9899
}));
99-
this.initializeCategories();
100+
await this.initializeCategories();
100101
this.refresh();
101102
}
102103

103-
public updateQueries() {
104-
this._queries = vscode.workspace.getConfiguration(SETTINGS_NAMESPACE, this._prManager.repository.rootUri).get<IQueryInfo[]>(QUERIES_SETTING) || [];
104+
private async isVSO(): Promise<boolean> {
105+
if (this._isVSO !== undefined) {
106+
return this._isVSO;
107+
}
108+
109+
const callbackUri = await vscode.env.asExternalUri(vscode.Uri.parse(`${vscode.env.uriScheme}://vscode.github-authentication`));
110+
const isVSO = callbackUri.authority.endsWith('workspaces.github.com');
111+
this._isVSO = isVSO;
112+
return isVSO;
105113
}
106114

107-
private initializeCategories() {
108-
this.updateQueries();
115+
public async updateQueries() {
116+
this._queries = await this.isVSO()
117+
? []
118+
: vscode.workspace.getConfiguration(SETTINGS_NAMESPACE, this._prManager.repository.rootUri).get<IQueryInfo[]>(QUERIES_SETTING) || [];
119+
}
109120

110-
this._disposables.push(vscode.workspace.onDidChangeConfiguration(e => {
121+
private async initializeCategories() {
122+
await this.updateQueries();
123+
124+
this._disposables.push(vscode.workspace.onDidChangeConfiguration(async e => {
111125
if (e.affectsConfiguration(`${SETTINGS_NAMESPACE}.${QUERIES_SETTING}`)) {
112-
this.updateQueries();
126+
await this.updateQueries();
113127
this.refresh();
114128
}
115129
}));

src/view/reviewManager.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ export class ReviewManager {
136136
}
137137

138138
private registerListeners(): void {
139-
this._disposables.push(vscode.workspace.onDidChangeConfiguration(e => {
139+
this._disposables.push(vscode.workspace.onDidChangeConfiguration(async e => {
140140
if (e.affectsConfiguration('githubPullRequests.showInSCM')) {
141141
if (this._prFileChangesProvider) {
142142
this._prFileChangesProvider.dispose();
@@ -149,7 +149,7 @@ export class ReviewManager {
149149

150150
this._prsTreeDataProvider.dispose();
151151
this._prsTreeDataProvider = new PullRequestsTreeDataProvider(this._telemetry);
152-
this._prsTreeDataProvider.initialize(this._prManager);
152+
await this._prsTreeDataProvider.initialize(this._prManager);
153153
this._disposables.push(this._prsTreeDataProvider);
154154
}
155155
}));

0 commit comments

Comments
 (0)