def create_digest(self, item_type, github_items): """ builds a DigestData instance filled with the digest """ issue_list = list(self.get_issues()) digest = DigestData(item_type) digest.user = self._user digest.repo = self._repository_name for github_item in github_items: if github_item.state == ItemStates.OPEN: digest.total_opened += 1 elif github_item.state == ItemStates.CLOSED: digest.total_closed += 1 digest.total_items += 1 item = Item() item.url = github_item.html_url item.label = '{}/{}#{}'.format(self._user, self._repository_name, github_item.number) item.title = github_item.title item.state = github_item.state github_user = github_item.user display_name = github_user.name or github_user.login if display_name not in digest.users: user = User() user.name = display_name user.gravatar = github_user.avatar_url digest.users[display_name] = user digest.items.setdefault(display_name, []).append(item) return digest