@@ -454,11 +454,25 @@ export const compileBitbucketConfig = async (
454454 const repos = bitbucketRepos . map ( ( repo ) => {
455455 const isServer = config . deploymentType === 'server' ;
456456 const codeHostType : CodeHostType = isServer ? 'bitbucketServer' : 'bitbucketCloud' ;
457- const displayName = isServer ?
458- // Server repos are of the format `project/repo`
459- `${ ( repo as BitbucketServerRepository ) . project ! . key } /${ ( repo as BitbucketServerRepository ) . slug ! } ` :
460- // Cloud repos are of the format `workspace/project/repo`
461- `${ ( repo as BitbucketCloudRepository ) . full_name ! . split ( '/' ) [ 0 ] } /${ ( repo as BitbucketCloudRepository ) . project ?. key } /${ ( repo as BitbucketCloudRepository ) . full_name ! . split ( '/' ) [ 1 ] } ` ;
457+ const displayName = ( ( ) => {
458+ if ( isServer ) {
459+ const serverRepo = repo as BitbucketServerRepository ;
460+ if ( ! serverRepo . project ?. key ) {
461+ throw new Error ( `No project key found for server repo ${ serverRepo . slug } ` ) ;
462+ }
463+ // Server repos are of the format `project/repo`
464+ return `${ serverRepo . project . key } /${ serverRepo . slug ! } ` ;
465+ } else {
466+ const cloudRepo = repo as BitbucketCloudRepository ;
467+ const projectKey = cloudRepo . project ?. key ;
468+ if ( ! projectKey ) {
469+ throw new Error ( `No project key found for cloud repo ${ cloudRepo . full_name } ` ) ;
470+ }
471+ // Cloud repos are of the format `workspace/project/repo`
472+ const [ workspace , repoSlug ] = cloudRepo . full_name ! . split ( '/' ) ;
473+ return `${ workspace } /${ projectKey } /${ repoSlug } ` ;
474+ }
475+ } ) ( ) ;
462476 const externalId = isServer ? ( repo as BitbucketServerRepository ) . id ! . toString ( ) : ( repo as BitbucketCloudRepository ) . uuid ! ;
463477 const isPublic = isServer ? ( repo as BitbucketServerRepository ) . public : ( repo as BitbucketCloudRepository ) . is_private === false ;
464478 const isArchived = isServer ? ( repo as BitbucketServerRepository ) . archived === true : false ;
0 commit comments