@@ -195,107 +195,106 @@ export class PullRequestOverviewPanel extends IssueOverviewPanel<PullRequestMode
195195 }
196196
197197 private async updatePullRequest ( pullRequestModel : PullRequestModel ) : Promise < void > {
198- return Promise . all ( [
199- this . _folderRepositoryManager . resolvePullRequest (
200- pullRequestModel . remote . owner ,
201- pullRequestModel . remote . repositoryName ,
202- pullRequestModel . number ,
203- ) ,
204- pullRequestModel . getTimelineEvents ( ) ,
205- this . _folderRepositoryManager . getPullRequestRepositoryDefaultBranch ( pullRequestModel ) ,
206- pullRequestModel . getStatusChecks ( ) ,
207- pullRequestModel . getReviewRequests ( ) ,
208- this . _folderRepositoryManager . getPullRequestRepositoryAccessAndMergeMethods ( pullRequestModel ) ,
209- this . _folderRepositoryManager . getBranchNameForPullRequest ( pullRequestModel ) ,
210- this . _folderRepositoryManager . getCurrentUser ( pullRequestModel . githubRepository ) ,
211- pullRequestModel . canEdit ( ) ,
212- this . _folderRepositoryManager . getOrgTeamsCount ( pullRequestModel . githubRepository ) ,
213- this . _folderRepositoryManager . mergeQueueMethodForBranch ( pullRequestModel . base . ref , pullRequestModel . remote . owner , pullRequestModel . remote . repositoryName ) ,
214- this . _folderRepositoryManager . isHeadUpToDateWithBase ( pullRequestModel ) ,
215- pullRequestModel . getMergeability ( ) ,
216- this . _folderRepositoryManager . getPreferredEmail ( pullRequestModel ) ] )
217- . then ( result => {
218- const [
219- pullRequest ,
220- timelineEvents ,
221- defaultBranch ,
222- status ,
223- requestedReviewers ,
224- repositoryAccess ,
225- branchInfo ,
226- currentUser ,
227- viewerCanEdit ,
228- orgTeamsCount ,
229- mergeQueueMethod ,
230- isBranchUpToDateWithBase ,
231- mergeability ,
232- emailForCommit ,
233- ] = result ;
234- if ( ! pullRequest ) {
235- throw new Error (
236- `Fail to resolve Pull Request #${ pullRequestModel . number } in ${ pullRequestModel . remote . owner } /${ pullRequestModel . remote . repositoryName } ` ,
237- ) ;
238- }
198+ try {
199+ const [
200+ pullRequest ,
201+ timelineEvents ,
202+ defaultBranch ,
203+ status ,
204+ requestedReviewers ,
205+ repositoryAccess ,
206+ branchInfo ,
207+ currentUser ,
208+ viewerCanEdit ,
209+ orgTeamsCount ,
210+ mergeQueueMethod ,
211+ isBranchUpToDateWithBase ,
212+ mergeability ,
213+ emailForCommit ,
214+ ] = await Promise . all ( [
215+ this . _folderRepositoryManager . resolvePullRequest (
216+ pullRequestModel . remote . owner ,
217+ pullRequestModel . remote . repositoryName ,
218+ pullRequestModel . number ,
219+ ) ,
220+ pullRequestModel . getTimelineEvents ( ) ,
221+ this . _folderRepositoryManager . getPullRequestRepositoryDefaultBranch ( pullRequestModel ) ,
222+ pullRequestModel . getStatusChecks ( ) ,
223+ pullRequestModel . getReviewRequests ( ) ,
224+ this . _folderRepositoryManager . getPullRequestRepositoryAccessAndMergeMethods ( pullRequestModel ) ,
225+ this . _folderRepositoryManager . getBranchNameForPullRequest ( pullRequestModel ) ,
226+ this . _folderRepositoryManager . getCurrentUser ( pullRequestModel . githubRepository ) ,
227+ pullRequestModel . canEdit ( ) ,
228+ this . _folderRepositoryManager . getOrgTeamsCount ( pullRequestModel . githubRepository ) ,
229+ this . _folderRepositoryManager . mergeQueueMethodForBranch ( pullRequestModel . base . ref , pullRequestModel . remote . owner , pullRequestModel . remote . repositoryName ) ,
230+ this . _folderRepositoryManager . isHeadUpToDateWithBase ( pullRequestModel ) ,
231+ pullRequestModel . getMergeability ( ) ,
232+ this . _folderRepositoryManager . getPreferredEmail ( pullRequestModel ) ,
233+ ] ) ;
234+ if ( ! pullRequest ) {
235+ throw new Error (
236+ `Fail to resolve Pull Request #${ pullRequestModel . number } in ${ pullRequestModel . remote . owner } /${ pullRequestModel . remote . repositoryName } ` ,
237+ ) ;
238+ }
239239
240- this . _item = pullRequest ;
241- this . registerPrListeners ( ) ;
242- this . _repositoryDefaultBranch = defaultBranch ! ;
243- this . _teamsCount = orgTeamsCount ;
244- this . setPanelTitle ( `Pull Request #${ pullRequestModel . number . toString ( ) } ` ) ;
245-
246- const isCurrentlyCheckedOut = pullRequestModel . equals ( this . _folderRepositoryManager . activePullRequest ) ;
247- const mergeMethodsAvailability = repositoryAccess ! . mergeMethodsAvailability ;
248-
249- const defaultMergeMethod = getDefaultMergeMethod ( mergeMethodsAvailability ) ;
250- this . _existingReviewers = parseReviewers ( requestedReviewers ! , timelineEvents ! , pullRequest . author ) ;
251-
252- const isUpdateBranchWithGitHubEnabled : boolean = this . isUpdateBranchWithGitHubEnabled ( ) ;
253- const reviewState = this . getCurrentUserReviewState ( this . _existingReviewers , currentUser ) ;
254-
255- Logger . debug ( 'pr.initialize' , PullRequestOverviewPanel . ID ) ;
256- const baseContext = this . getInitializeContext ( pullRequest , timelineEvents , repositoryAccess , viewerCanEdit ) ;
257-
258- const context : Partial < PullRequest > = {
259- ...baseContext ,
260- isCurrentlyCheckedOut : isCurrentlyCheckedOut ,
261- isRemoteBaseDeleted : pullRequest . isRemoteBaseDeleted ,
262- base : pullRequest . base . label ,
263- isRemoteHeadDeleted : pullRequest . isRemoteHeadDeleted ,
264- isLocalHeadDeleted : ! branchInfo ,
265- head : pullRequest . head ?. label ?? '' ,
266- repositoryDefaultBranch : defaultBranch ,
267- status : status [ 0 ] ,
268- reviewRequirement : status [ 1 ] ,
269- canUpdateBranch : pullRequest . item . viewerCanUpdate && ! isBranchUpToDateWithBase && isUpdateBranchWithGitHubEnabled ,
270- mergeable : mergeability . mergeability ,
271- reviewers : this . _existingReviewers ,
272- isDraft : pullRequest . isDraft ,
273- mergeMethodsAvailability,
274- defaultMergeMethod,
275- autoMerge : pullRequest . autoMerge ,
276- allowAutoMerge : pullRequest . allowAutoMerge ,
277- autoMergeMethod : pullRequest . autoMergeMethod ,
278- mergeQueueMethod : mergeQueueMethod ,
279- mergeQueueEntry : pullRequest . mergeQueueEntry ,
280- mergeCommitMeta : pullRequest . mergeCommitMeta ,
281- squashCommitMeta : pullRequest . squashCommitMeta ,
282- isIssue : false ,
283- emailForCommit,
284- isAuthor : currentUser . login === pullRequest . author . login ,
285- currentUserReviewState : reviewState ,
286- revertable : pullRequest . state === GithubItemStateEnum . Merged
287- } ;
288- this . _postMessage ( {
289- command : 'pr.initialize' ,
290- pullrequest : context
291- } ) ;
292- if ( pullRequest . isResolved ( ) ) {
293- this . _folderRepositoryManager . checkBranchUpToDate ( pullRequest , true ) ;
294- }
295- } )
296- . catch ( e => {
297- vscode . window . showErrorMessage ( `Error updating pull request description: ${ formatError ( e ) } ` ) ;
240+ this . _item = pullRequest ;
241+ this . registerPrListeners ( ) ;
242+ this . _repositoryDefaultBranch = defaultBranch ! ;
243+ this . _teamsCount = orgTeamsCount ;
244+ this . setPanelTitle ( `Pull Request #${ pullRequestModel . number . toString ( ) } ` ) ;
245+
246+ const isCurrentlyCheckedOut = pullRequestModel . equals ( this . _folderRepositoryManager . activePullRequest ) ;
247+ const mergeMethodsAvailability = repositoryAccess ! . mergeMethodsAvailability ;
248+
249+ const defaultMergeMethod = getDefaultMergeMethod ( mergeMethodsAvailability ) ;
250+ this . _existingReviewers = parseReviewers ( requestedReviewers ! , timelineEvents ! , pullRequest . author ) ;
251+
252+ const isUpdateBranchWithGitHubEnabled : boolean = this . isUpdateBranchWithGitHubEnabled ( ) ;
253+ const reviewState = this . getCurrentUserReviewState ( this . _existingReviewers , currentUser ) ;
254+
255+ Logger . debug ( 'pr.initialize' , PullRequestOverviewPanel . ID ) ;
256+ const baseContext = this . getInitializeContext ( pullRequest , timelineEvents , repositoryAccess , viewerCanEdit , [ ] ) ;
257+
258+ const context : Partial < PullRequest > = {
259+ ...baseContext ,
260+ isCurrentlyCheckedOut : isCurrentlyCheckedOut ,
261+ isRemoteBaseDeleted : pullRequest . isRemoteBaseDeleted ,
262+ base : pullRequest . base . label ,
263+ isRemoteHeadDeleted : pullRequest . isRemoteHeadDeleted ,
264+ isLocalHeadDeleted : ! branchInfo ,
265+ head : pullRequest . head ?. label ?? '' ,
266+ repositoryDefaultBranch : defaultBranch ,
267+ status : status [ 0 ] ,
268+ reviewRequirement : status [ 1 ] ,
269+ canUpdateBranch : pullRequest . item . viewerCanUpdate && ! isBranchUpToDateWithBase && isUpdateBranchWithGitHubEnabled ,
270+ mergeable : mergeability . mergeability ,
271+ reviewers : this . _existingReviewers ,
272+ isDraft : pullRequest . isDraft ,
273+ mergeMethodsAvailability,
274+ defaultMergeMethod,
275+ autoMerge : pullRequest . autoMerge ,
276+ allowAutoMerge : pullRequest . allowAutoMerge ,
277+ autoMergeMethod : pullRequest . autoMergeMethod ,
278+ mergeQueueMethod : mergeQueueMethod ,
279+ mergeQueueEntry : pullRequest . mergeQueueEntry ,
280+ mergeCommitMeta : pullRequest . mergeCommitMeta ,
281+ squashCommitMeta : pullRequest . squashCommitMeta ,
282+ isIssue : false ,
283+ emailForCommit,
284+ isAuthor : currentUser . login === pullRequest . author . login ,
285+ currentUserReviewState : reviewState ,
286+ revertable : pullRequest . state === GithubItemStateEnum . Merged
287+ } ;
288+ this . _postMessage ( {
289+ command : 'pr.initialize' ,
290+ pullrequest : context
298291 } ) ;
292+ if ( pullRequest . isResolved ( ) ) {
293+ this . _folderRepositoryManager . checkBranchUpToDate ( pullRequest , true ) ;
294+ }
295+ } catch ( e ) {
296+ vscode . window . showErrorMessage ( `Error updating pull request description: ${ formatError ( e ) } ` ) ;
297+ }
299298 }
300299
301300 public override async update (
0 commit comments