@@ -132,8 +132,19 @@ export default class PullRequest {
132
132
} )
133
133
) . data . map ( u => u . id ) ;
134
134
135
+ console . log ( '\n**** reviews ****' ) ;
136
+ console . log ( reviews ) ;
137
+
138
+ console . log ( '\n**** push users ****' ) ;
139
+ console . log ( pushUsers ) ;
140
+
135
141
const latestReviewsObj : {
136
- [ key : number ] : { state : string ; time : number } ;
142
+ [ key : number ] : {
143
+ state : string ;
144
+ time : number ;
145
+ username : string ;
146
+ userId : number ;
147
+ } ;
137
148
} = { } ;
138
149
139
150
for ( const r of reviews ) {
@@ -142,10 +153,10 @@ export default class PullRequest {
142
153
const user = r . user . id ;
143
154
const time = new Date ( r . submitted_at ) . getTime ( ) ;
144
155
145
- if ( ! pushUsers . includes ( user ) ) continue ;
146
-
147
156
const review = {
148
157
state : r . state ,
158
+ username : r . user . login ,
159
+ userId : user ,
149
160
time,
150
161
} ;
151
162
@@ -159,7 +170,32 @@ export default class PullRequest {
159
170
}
160
171
}
161
172
162
- const latestReviews = Object . values ( latestReviewsObj ) ;
173
+ const promises = [ ] ;
174
+ for ( const r of Object . values ( latestReviewsObj ) ) {
175
+ promises . push (
176
+ this . octokit . repos . getCollaboratorPermissionLevel ( {
177
+ owner : this . owner ,
178
+ repo : this . repo ,
179
+ username : r . username ,
180
+ } ) ,
181
+ ) ;
182
+ }
183
+
184
+ console . log ( '\n**** alternative approach ****' ) ;
185
+ const newPushUsers = ( await Promise . all ( promises ) )
186
+ . filter (
187
+ ( { data } ) =>
188
+ data . permission === 'write' || data . permission === 'admin' ,
189
+ )
190
+ . map ( d => d . data ?. user ?. id ) ;
191
+ console . log ( newPushUsers ) ;
192
+
193
+ const latestReviews = Object . values ( latestReviewsObj ) . filter ( ( { userId } ) =>
194
+ pushUsers . includes ( userId ) ,
195
+ ) ;
196
+
197
+ console . log ( '\n**** latestReviews ****' ) ;
198
+ console . log ( latestReviews ) ;
163
199
164
200
if ( ! latestReviews . length ) return 'readyForReview' ;
165
201
0 commit comments