def _process_event(self, repo, event):
"""Process potentially new event for repository
:param repo: Repository related to event
:type repo: ``repocribro.models.Repository``
:param event: GitHub event data
:type event: dict
:return: If the event was new or already registered before
:rtype: bool
"""
last = pytz.utc.localize(repo.last_event)
if iso8601.parse_date(event['created_at']) <= last:
return False
hook_type = self.event2webhook.get(event['type'], 'uknown')
for event_processor in self.hooks.get(hook_type, []):
try:
event_processor(db=self.db, repo=repo,
payload=event['payload'],
actor=event['actor'])
print('Processed {} from {} event for {}'.format(
event['type'], event['created_at'], repo.full_name
))
except HTTPException:
print('Error while processing #{}'.format(event['id']))
return True
评论列表
文章目录