Skip to content

Commit 4cef335

Browse files
authored
fix(events): init EventUser only if actor is defined
Prevents the following TypeError with events of deleted users (aka "ghost"): ``` File "/path/to/github3/models.py", line 52, in __init__ self._update_attributes(json) File "/path/to/github3/issues/event.py", line 63, in _update_attributes self.actor = users.ShortUser(event["actor"], self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/path/to/github3/models.py", line 52, in __init__ self._update_attributes(json) File "/path/to/github3/users.py", line 309, in _update_attributes self.avatar_url = user["avatar_url"] TypeError: 'NoneType' object is not subscriptable ```
1 parent 43aa2d6 commit 4cef335

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/github3/events.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ class Event(models.GitHubCore):
388388
.. attribute:: actor
389389
390390
A :class:`~github3.events.EventUser` that represents the user whose
391-
action generated this event.
391+
action generated this event, or `None` if the user no longer exists.
392392
393393
.. attribute:: created_at
394394
@@ -438,7 +438,8 @@ def _update_attributes(self, event):
438438
# If we don't copy this, then we end up altering _json_data which we do
439439
# not want to do:
440440
event = copy.deepcopy(event)
441-
self.actor = EventUser(event["actor"], self)
441+
if event["actor"]:
442+
self.actor = EventUser(event["actor"], self)
442443
self.created_at = self._strptime(event["created_at"])
443444
self.id = event["id"]
444445
self.org = event.get("org")

0 commit comments

Comments
 (0)