Skip to content

Commit 3c3c51f

Browse files
Copilotalexr00
andcommitted
Refactor: Extract common PR resolution logic into helper method
Co-authored-by: alexr00 <38270282+alexr00@users.noreply.github.com>
1 parent 9b9e0df commit 3c3c51f

1 file changed

Lines changed: 12 additions & 9 deletions

File tree

src/uriHandler.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ export class UriHandler implements vscode.UriHandler {
136136
return IssueOverviewPanel.createOrShow(this._telemetry, this._context.extensionUri, folderManager, issue);
137137
}
138138

139-
private async _openPullRequestWebview(uri: vscode.Uri): Promise<void> {
139+
private async _resolvePullRequestFromUri(uri: vscode.Uri): Promise<{ folderManager: FolderRepositoryManager; pullRequest: PullRequestModel } | undefined> {
140140
const params = fromOpenOrCheckoutPullRequestWebviewUri(uri);
141141
if (!params) {
142142
return;
@@ -146,20 +146,23 @@ export class UriHandler implements vscode.UriHandler {
146146
if (!pullRequest) {
147147
return;
148148
}
149-
return PullRequestOverviewPanel.createOrShow(this._telemetry, this._context.extensionUri, folderManager, pullRequest);
149+
return { folderManager, pullRequest };
150150
}
151151

152-
private async _openPullRequestChanges(uri: vscode.Uri): Promise<void> {
153-
const params = fromOpenOrCheckoutPullRequestWebviewUri(uri);
154-
if (!params) {
152+
private async _openPullRequestWebview(uri: vscode.Uri): Promise<void> {
153+
const resolved = await this._resolvePullRequestFromUri(uri);
154+
if (!resolved) {
155155
return;
156156
}
157-
const folderManager = this._reposManagers.getManagerForRepository(params.owner, params.repo) ?? this._reposManagers.folderManagers[0];
158-
const pullRequest = await folderManager.resolvePullRequest(params.owner, params.repo, params.pullRequestNumber);
159-
if (!pullRequest) {
157+
return PullRequestOverviewPanel.createOrShow(this._telemetry, this._context.extensionUri, resolved.folderManager, resolved.pullRequest);
158+
}
159+
160+
private async _openPullRequestChanges(uri: vscode.Uri): Promise<void> {
161+
const resolved = await this._resolvePullRequestFromUri(uri);
162+
if (!resolved) {
160163
return;
161164
}
162-
return PullRequestModel.openChanges(folderManager, pullRequest);
165+
return PullRequestModel.openChanges(resolved.folderManager, resolved.pullRequest);
163166
}
164167

165168
private async _savePendingCheckoutAndOpenFolder(params: { owner: string; repo: string; pullRequestNumber: number }, folderUri: vscode.Uri): Promise<void> {

0 commit comments

Comments
 (0)