def notifications():
if request.user != 'NOTIFICATION':
return ('', 403)
data = json.loads(request.data)
if not 'events' in data:
return ('', 204)
for event in data['events']:
logging.debug(event)
# At this time the possible values for action seem to be
# push, pull, delete, and mount:
# https://github.com/docker/distribution/blob/master/notifications/event.go#L10
action = event['action']
repo = event['target']['repository']
digest = event['target']['digest']
# tag may not be present
tag = event['target'].get('tag')
timestamp = dateutil.parser.parse(event['timestamp'])
user = event['actor']['name']
logging.info("action '{}' repo '{}' digest '{}' tag '{}' timestamp '{}' user '{}'".format(action, repo, digest, tag, timestamp, user))
# Save to database, etc. here
return ('', 204)
评论列表
文章目录