@@ -129,8 +129,11 @@ export abstract class BaseCreatePullRequestViewProvider<T extends BasePullReques
129129
130130 protected abstract getTitleAndDescription ( compareBranch : Branch , baseBranch : string ) : Promise < { title : string , description : string } > ;
131131
132- protected async getMergeConfiguration ( owner : string , name : string , refetch : boolean = false ) : Promise < RepoAccessAndMergeMethods > {
132+ protected async getMergeConfiguration ( owner : string , name : string , refetch : boolean = false ) : Promise < RepoAccessAndMergeMethods | undefined > {
133133 const repo = await this . _folderRepositoryManager . createGitHubRepositoryFromOwnerName ( owner , name ) ;
134+ if ( ! repo ) {
135+ return undefined ;
136+ }
134137 return repo . getRepoAccessAndMergeMethods ( refetch ) ;
135138 }
136139
@@ -212,7 +215,7 @@ export abstract class BaseCreatePullRequestViewProvider<T extends BasePullReques
212215 const defaultBaseBranch = detectedBaseMetadata ?. branch ?? this . _pullRequestDefaults . base ;
213216
214217 let defaultTitleAndDescription : { title : string ; description : string } ;
215- let mergeConfiguration : RepoAccessAndMergeMethods ;
218+ let mergeConfiguration : RepoAccessAndMergeMethods | undefined ;
216219 let viewerPermission : ViewerPermission ;
217220 let mergeQueueMethodForBranch : MergeMethod | undefined ;
218221 let labels : ILabel [ ] ;
@@ -255,7 +258,7 @@ export abstract class BaseCreatePullRequestViewProvider<T extends BasePullReques
255258
256259 const defaultCreateOption = vscode . workspace . getConfiguration ( PR_SETTINGS_NAMESPACE ) . get < 'lastUsed' | 'create' | 'createDraft' | 'createAutoMerge' > ( DEFAULT_CREATE_OPTION , 'lastUsed' ) ;
257260 const lastCreateMethod : { autoMerge : boolean , mergeMethod : MergeMethod | undefined , isDraft : boolean } | undefined = this . _folderRepositoryManager . context . workspaceState . get < { autoMerge : boolean , mergeMethod : MergeMethod , isDraft } | undefined > ( PREVIOUS_CREATE_METHOD , undefined ) ;
258- const repoMergeMethod = getDefaultMergeMethod ( mergeConfiguration . mergeMethodsAvailability ) ;
261+ const repoMergeMethod = mergeConfiguration ? getDefaultMergeMethod ( mergeConfiguration . mergeMethodsAvailability ) : 'merge' as MergeMethod ;
259262
260263 // default values are for 'create'
261264 let defaultMergeMethod : MergeMethod = repoMergeMethod ;
@@ -266,11 +269,11 @@ export abstract class BaseCreatePullRequestViewProvider<T extends BasePullReques
266269 if ( defaultCreateOption === 'lastUsed' ) {
267270 defaultMergeMethod = lastCreateMethod ?. mergeMethod ?? repoMergeMethod ;
268271 isDraftDefault = ! ! lastCreateMethod ?. isDraft ;
269- autoMergeDefault = mergeConfiguration . viewerCanAutoMerge && ! ! lastCreateMethod ?. autoMerge ;
272+ autoMergeDefault = ! ! mergeConfiguration ? .viewerCanAutoMerge && ! ! lastCreateMethod ?. autoMerge ;
270273 } else if ( defaultCreateOption === 'createDraft' ) {
271274 isDraftDefault = true ;
272275 } else if ( defaultCreateOption === 'createAutoMerge' ) {
273- autoMergeDefault = mergeConfiguration . viewerCanAutoMerge ;
276+ autoMergeDefault = ! ! mergeConfiguration ? .viewerCanAutoMerge ;
274277 }
275278 commands . setContext ( contexts . CREATE_PR_PERMISSIONS , viewerPermission ) ;
276279
@@ -301,8 +304,8 @@ export abstract class BaseCreatePullRequestViewProvider<T extends BasePullReques
301304 defaultMergeMethod,
302305 baseHasMergeQueue : ! ! mergeQueueMethodForBranch ,
303306 remoteCount : remotes . length ,
304- allowAutoMerge : mergeConfiguration . viewerCanAutoMerge ,
305- mergeMethodsAvailability : mergeConfiguration . mergeMethodsAvailability ,
307+ allowAutoMerge : mergeConfiguration ? .viewerCanAutoMerge ,
308+ mergeMethodsAvailability : mergeConfiguration ? .mergeMethodsAvailability ,
306309 autoMergeDefault,
307310 createError : '' ,
308311 labels : this . labels ,
@@ -1073,7 +1076,7 @@ Don't forget to commit your template file to the repository so that it can be us
10731076 this . getTitleAndDescription ( compareBranch , this . model . baseBranch ) ,
10741077 this . _folderRepositoryManager . mergeQueueMethodForBranch ( this . model . baseBranch , this . model . baseOwner , this . model . repositoryName ) ] ) ;
10751078 let autoMergeDefault = false ;
1076- if ( mergeConfiguration . viewerCanAutoMerge ) {
1079+ if ( mergeConfiguration ? .viewerCanAutoMerge ) {
10771080 const defaultCreateOption = vscode . workspace . getConfiguration ( PR_SETTINGS_NAMESPACE ) . get < 'lastUsed' | 'create' | 'createDraft' | 'createAutoMerge' > ( DEFAULT_CREATE_OPTION , 'lastUsed' ) ;
10781081 const lastCreateMethod : { autoMerge : boolean , mergeMethod : MergeMethod | undefined , isDraft : boolean } | undefined = this . _folderRepositoryManager . context . workspaceState . get < { autoMerge : boolean , mergeMethod : MergeMethod , isDraft } | undefined > ( PREVIOUS_CREATE_METHOD , undefined ) ;
10791082 autoMergeDefault = ( defaultCreateOption === 'lastUsed' && lastCreateMethod ?. autoMerge ) || ( defaultCreateOption === 'createAutoMerge' ) ;
@@ -1083,10 +1086,10 @@ Don't forget to commit your template file to the repository so that it can be us
10831086 baseRemote : result . remote ,
10841087 baseBranch : result . branch ,
10851088 defaultBaseBranch : defaultBranch ,
1086- defaultMergeMethod : getDefaultMergeMethod ( mergeConfiguration . mergeMethodsAvailability ) ,
1087- allowAutoMerge : mergeConfiguration . viewerCanAutoMerge ,
1089+ defaultMergeMethod : mergeConfiguration ? getDefaultMergeMethod ( mergeConfiguration . mergeMethodsAvailability ) : 'merge' as MergeMethod ,
1090+ allowAutoMerge : mergeConfiguration ? .viewerCanAutoMerge ?? false ,
10881091 baseHasMergeQueue : ! ! mergeQueueMethodForBranch ,
1089- mergeMethodsAvailability : mergeConfiguration . mergeMethodsAvailability ,
1092+ mergeMethodsAvailability : mergeConfiguration ? .mergeMethodsAvailability ?? { merge : true , squash : true , rebase : true } ,
10901093 autoMergeDefault,
10911094 defaultTitle : titleAndDescription . title ,
10921095 defaultDescription : titleAndDescription . description
0 commit comments