@@ -93,35 +93,46 @@ async function addRepos(event: H3Event, installation: Installation | Installatio
93
93
continue
94
94
}
95
95
96
- console . log ( 'starting to index' , ` ${ repo . full_name } ` )
96
+ await indexRepo ( octokit , repo )
97
97
98
98
const [ owner , name ] = repo . full_name . split ( '/' )
99
+ event . waitUntil ( setMetadataForRepo ( owner ! , name ! , { ...repo , indexed : true } ) )
100
+ }
101
+ }
99
102
100
- const promises : Array < Promise < unknown > > = [ ]
101
-
102
- await octokit . paginate ( octokit . rest . issues . listForRepo , {
103
- owner : owner ! ,
104
- repo : name ! ,
105
- state : 'open' ,
106
- per_page : 100 ,
107
- } , ( response ) => {
108
- console . log ( response . headers )
109
- for ( const issue of response . data ) {
110
- promises . push ( indexIssue ( issue , { owner : { login : owner ! } , name : name ! } ) )
111
- }
112
- return [ ]
113
- } )
103
+ export async function indexRepo ( octokit : Octokit , repo : InstallationRepo ) {
104
+ if ( repo . private ) {
105
+ return
106
+ }
114
107
115
- await Promise . allSettled ( promises ) . then ( ( r ) => {
116
- if ( r . some ( p => p . status === 'rejected' ) ) {
117
- console . error ( 'Failed to fetch some issues from' , `${ owner } /${ name } ` )
118
- }
119
- } )
108
+ console . log ( 'starting to index' , `${ repo . full_name } ` )
120
109
121
- console . log ( 'added' , promises . length - 1 , 'issues from' , ` ${ owner } / ${ name } ` , 'to the index ')
110
+ const [ owner , name ] = repo . full_name . split ( '/ ')
122
111
123
- event . waitUntil ( setMetadataForRepo ( owner ! , name ! , { ...repo , indexed : true } ) )
124
- }
112
+ const promises : Array < Promise < unknown > > = [ ]
113
+
114
+ await octokit . paginate ( octokit . rest . issues . listForRepo , {
115
+ owner : owner ! ,
116
+ repo : name ! ,
117
+ state : 'open' ,
118
+ per_page : 100 ,
119
+ } , ( response ) => {
120
+ for ( const issue of response . data ) {
121
+ promises . push ( indexIssue ( issue , { owner : { login : owner ! } , name : name ! } ) )
122
+ }
123
+ if ( parseInt ( response . headers [ 'x-ratelimit-remaining' ] || '999' ) < 100 ) {
124
+ console . info ( parseInt ( response . headers [ 'x-ratelimit-remaining' ] ! ) , 'requests remaining' )
125
+ }
126
+ return [ ]
127
+ } )
128
+
129
+ await Promise . allSettled ( promises ) . then ( ( r ) => {
130
+ if ( r . some ( p => p . status === 'rejected' ) ) {
131
+ console . error ( 'Failed to fetch some issues from' , `${ owner } /${ name } ` )
132
+ }
133
+ } )
134
+
135
+ console . log ( 'added' , promises . length , 'issues from' , `${ owner } /${ name } ` , 'to the index' )
125
136
}
126
137
127
138
async function deleteRepo ( event : H3Event , repo : InstallationRepo ) {
0 commit comments