@@ -50,6 +50,10 @@ class PrInfo:
5050 assignee_ids : Set [str ] = field (default_factory = set )
5151 labels : Set [str ] = field (default_factory = set )
5252 label_ids : Set [str ] = field (default_factory = set )
53+ removed_reviewers : Set [str ] = field (default_factory = set )
54+ removed_reviewer_ids : Set [str ] = field (default_factory = set )
55+ removed_assignees : Set [str ] = field (default_factory = set )
56+ removed_assignee_ids : Set [str ] = field (default_factory = set )
5357 is_draft : bool = False
5458 comments : List [PrComment ] = field (default_factory = list )
5559
@@ -225,6 +229,26 @@ async def query_everything(
225229 }}
226230 }}
227231 }}
232+ timelineItems(itemTypes: [REVIEW_REQUEST_REMOVED_EVENT, UNASSIGNED_EVENT], first: 50) {{
233+ nodes {{
234+ ... on ReviewRequestRemovedEvent {{
235+ requestedReviewer {{
236+ ... on User {{
237+ login
238+ id
239+ }}
240+ }}
241+ }}
242+ ... on UnassignedEvent {{
243+ assignee {{
244+ ... on User {{
245+ login
246+ id
247+ }}
248+ }}
249+ }}
250+ }}
251+ }}
228252 latestReviews (first: 25) {{
229253 nodes {{
230254 author {{
@@ -317,6 +341,20 @@ async def query_everything(
317341 for c in this_node ["comments" ]["nodes" ]:
318342 comments .append (PrComment (c ["body" ], c ["id" ]))
319343
344+ removed_reviewers : Set [str ] = set ()
345+ removed_reviewer_ids : Set [str ] = set ()
346+ removed_assignees : Set [str ] = set ()
347+ removed_assignee_ids : Set [str ] = set ()
348+ for event in this_node ["timelineItems" ]["nodes" ]:
349+ rr = event .get ("requestedReviewer" )
350+ if rr and "login" in rr and rr ["login" ] not in reviewers :
351+ removed_reviewers .add (rr ["login" ])
352+ removed_reviewer_ids .add (rr ["id" ])
353+ assignee = event .get ("assignee" )
354+ if assignee and "login" in assignee and assignee ["login" ] not in assignees :
355+ removed_assignees .add (assignee ["login" ])
356+ removed_assignee_ids .add (assignee ["id" ])
357+
320358 prs .append (
321359 PrInfo (
322360 id = this_node ["id" ],
@@ -333,6 +371,10 @@ async def query_everything(
333371 assignee_ids = assignee_ids ,
334372 labels = pr_labels ,
335373 label_ids = pr_label_ids ,
374+ removed_reviewers = removed_reviewers ,
375+ removed_reviewer_ids = removed_reviewer_ids ,
376+ removed_assignees = removed_assignees ,
377+ removed_assignee_ids = removed_assignee_ids ,
336378 is_draft = this_node ["isDraft" ],
337379 state = this_node ["state" ],
338380 comments = comments ,
0 commit comments