diff --git a/src/github3/events.py b/src/github3/events.py index d97d2faa..f3d02272 100644 --- a/src/github3/events.py +++ b/src/github3/events.py @@ -392,7 +392,7 @@ class Event(models.GitHubCore): .. attribute:: actor A :class:`~github3.events.EventUser` that represents the user whose - action generated this event. + action generated this event, or `None` if the user no longer exists. .. attribute:: created_at @@ -442,7 +442,9 @@ def _update_attributes(self, event): # If we don't copy this, then we end up altering _json_data which we do # not want to do: event = copy.deepcopy(event) - self.actor = EventUser(event["actor"], self) + self.actor = event["actor"] + if self.actor: + self.actor = EventUser(self.actor, self) self.created_at = self._strptime(event["created_at"]) self.id = event["id"] self.org = event.get("org") diff --git a/src/github3/issues/event.py b/src/github3/issues/event.py index 356afb94..7fb5048c 100644 --- a/src/github3/issues/event.py +++ b/src/github3/issues/event.py @@ -60,7 +60,9 @@ class IssueEvent(GitHubCore): def _update_attributes(self, event): self._api = event["url"] - self.actor = users.ShortUser(event["actor"], self) + self.actor = event["actor"] + if self.actor: + self.actor = users.ShortUser(self.actor, self) self.commit_id = event["commit_id"] self.commit_url = event["commit_url"] self.created_at = self._strptime(event["created_at"]) diff --git a/src/github3/pulls.py b/src/github3/pulls.py index 8c6f91d5..337f6c91 100644 --- a/src/github3/pulls.py +++ b/src/github3/pulls.py @@ -71,7 +71,9 @@ def _update_attributes(self, dest): repo = dest.get("repo") if repo: self._repo_name = repo.get("name") - self._repo_owner = repo["owner"]["login"] + self._repo_owner = repo.get("owner") + if self._repo_owner: + self._repo_owner = self._repo_owner["login"] self.repository = ShortRepository(repo, self) self.repo = (self._repo_owner, self._repo_name) @@ -992,7 +994,9 @@ def _update_attributes(self, review): # PullReview. self.commit_id = review.get("commit_id", None) self.html_url = review["html_url"] - self.user = users.ShortUser(review["user"], self) + self.user = review["user"] + if self.user: + self.user = users.ShortUser(self.user, self) self.state = review["state"] self.submitted_at = self._strptime(review.get("submitted_at")) self.pull_request_url = review["pull_request_url"] diff --git a/src/github3/repos/repo.py b/src/github3/repos/repo.py index 12fa01cb..0d8baf7c 100644 --- a/src/github3/repos/repo.py +++ b/src/github3/repos/repo.py @@ -91,7 +91,9 @@ def _update_attributes(self, repo): self.milestones_urlt = urit.URITemplate(repo["milestones_url"]) self.name = repo["name"] self.notifications_urlt = urit.URITemplate(repo["notifications_url"]) - self.owner = users.ShortUser(repo["owner"], self) + self.owner = repo["owner"] + if self.owner: + self.owner = users.ShortUser(self.owner, self) self.private = repo["private"] self.pulls_urlt = urit.URITemplate(repo["pulls_url"]) self.releases_urlt = urit.URITemplate(repo["releases_url"])