@@ -488,17 +488,46 @@ ${this.results.reduce((x, y) => {
488
488
489
489
async eachRepositoryRepos ( github , log ) {
490
490
log . debug ( 'Fetching repositories' )
491
- return github . paginate ( 'GET /installation/repositories' ) . then ( repositories => {
492
- return Promise . all ( repositories . map ( repository => {
493
- if ( this . isRestricted ( repository . name ) ) {
494
- return null
495
- }
491
+ const processedRepos = new Set ( )
492
+ const results = [ ]
493
+
494
+ // Process existing repositories
495
+ const existingRepoResults = await github . paginate ( 'GET /installation/repositories' )
496
+ . then ( repositories => {
497
+ return Promise . all ( repositories . map ( repository => {
498
+ if ( this . isRestricted ( repository . name ) ) {
499
+ return null
500
+ }
501
+ const { owner, name } = repository
502
+ processedRepos . add ( `${ owner . login } /${ name } ` )
503
+ return this . updateRepos ( { owner : owner . login , repo : name } )
504
+ } ) )
505
+ } )
496
506
497
- const { owner, name } = repository
498
- return this . updateRepos ( { owner : owner . login , repo : name } )
507
+ // Process missing repositories
508
+ const repoInConfigs = Object . values ( this . repoConfigs )
509
+ . filter ( config => config . repository ?. name )
510
+ . map ( config => {
511
+ return {
512
+ name : config . repository . name ,
513
+ owner : config . repository . organization || this . repo . owner
514
+ }
499
515
} )
500
- )
501
- } )
516
+ const missingRepoResults = await Promise . all (
517
+ repoInConfigs
518
+ . filter ( repo => ! this . isRestricted ( repo . name ) )
519
+ . filter ( repo => ! processedRepos . has ( `${ repo . owner } /${ repo . name } ` ) )
520
+ . map ( repo => {
521
+ processedRepos . add ( `${ repo . owner } /${ repo . name } ` )
522
+ return this . updateRepos ( { owner : repo . owner , repo : repo . name } )
523
+ } )
524
+ )
525
+
526
+ results
527
+ . concat ( existingRepoResults || [ ] , missingRepoResults || [ ] )
528
+ . filter ( result => result !== null )
529
+
530
+ return results
502
531
}
503
532
504
533
/**
0 commit comments