1
1
import os
2
- from typing import Any , List , Tuple
2
+ from typing import Any , Dict , List , Tuple
3
3
4
4
import woodchips
5
5
from github import Github , Issue , NamedUser , PaginatedList , PullRequest
@@ -188,9 +188,7 @@ def get_pull_requests(self, repos: PaginatedList.PaginatedList) -> List[PullRequ
188
188
189
189
return flat_pull_requests_list
190
190
191
- def get_pull_request_reviews (
192
- self , pull_request : PullRequest .PullRequest
193
- ) -> Tuple [List [NamedUser .NamedUser ], List [NamedUser .NamedUser ], List [NamedUser .NamedUser ]]:
191
+ def get_pull_request_reviews (self , pull_request : PullRequest .PullRequest ) -> Dict [str , List [NamedUser .NamedUser ]]:
194
192
"""Grab all pull request reviews of a single pull request.
195
193
196
194
We then break down these reviews into `APPROVED`, `CHANGES_REQUESTED`, or `DISMISSED` as the `state`.
@@ -199,24 +197,26 @@ def get_pull_request_reviews(
199
197
200
198
logger .debug (f'Bugging GitHub for pull request reviews of { pull_request .title } ...' )
201
199
202
- users_who_approved = []
203
- users_who_requested_changes = []
204
- users_who_were_dismissed = []
200
+ pull_request_reviews_by_category : Dict [str , List [NamedUser .NamedUser ]] = {
201
+ 'users_who_approved' : [],
202
+ 'users_who_requested_changes' : [],
203
+ 'users_who_were_dismissed' : [],
204
+ }
205
205
206
206
pull_request_reviews = pull_request .get_reviews ()
207
207
208
208
for pull_request_review in pull_request_reviews :
209
209
pull_request_review_user = pull_request_review .user
210
210
if pull_request_review and pull_request_review .state == 'APPROVED' :
211
- users_who_approved .append (pull_request_review_user )
211
+ pull_request_reviews_by_category [ ' users_who_approved' ] .append (pull_request_review_user )
212
212
elif pull_request_review and pull_request_review .state == 'CHANGES_REQUESTED' :
213
- users_who_requested_changes .append (pull_request_review_user )
213
+ pull_request_reviews_by_category [ ' users_who_requested_changes' ] .append (pull_request_review_user )
214
214
elif pull_request_review and pull_request_review .state == 'DISMISSED' :
215
- users_who_were_dismissed .append (pull_request_review_user )
215
+ pull_request_reviews_by_category [ ' users_who_were_dismissed' ] .append (pull_request_review_user )
216
216
217
217
logger .debug (f'Pull request reviews retrieved for { pull_request .title } !' )
218
218
219
- return users_who_approved , users_who_requested_changes , users_who_were_dismissed
219
+ return pull_request_reviews_by_category
220
220
221
221
def get_issues (self , repos : PaginatedList .PaginatedList ) -> List [Issue .Issue ]:
222
222
"""Grab all issues from each repo and return a flat list of issues."""
@@ -266,11 +266,10 @@ def iterate_pull_requests(self, pull_requests: PaginatedList.PaginatedList) -> T
266
266
reviewers_requested .append (team )
267
267
268
268
# We need to separately get reviewers who approved, requested changes, or got dismissed
269
- (
270
- users_who_approved ,
271
- users_who_requested_changes ,
272
- users_who_were_dismissed ,
273
- ) = self .get_pull_request_reviews (pull_request )
269
+ pull_request_reviews_by_category = self .get_pull_request_reviews (pull_request )
270
+ users_who_approved = pull_request_reviews_by_category ['users_who_approved' ]
271
+ users_who_requested_changes = pull_request_reviews_by_category ['users_who_requested_changes' ]
272
+ users_who_were_dismissed = pull_request_reviews_by_category ['users_who_were_dismissed' ]
274
273
275
274
message , discord_message = Message .prepare_pulls_message (
276
275
pull_request = pull_request ,
0 commit comments