

@must_be_valid_project
@must_not_be_registration
@must_have_addon('github', 'node')
def github_hook_callback(node_addon, **kwargs):
    'Add logs for commits from outside OSF.\n\n    '
    if (request.json is None):
        return {
            
        }
    verify_hook_signature(node_addon, request.data, request.headers)
    node = (kwargs['node'] or kwargs['project'])
    payload = request.json
    for commit in payload.get('commits', []):
        if (commit['message'] and (commit['message'] in MESSAGES.values())):
            continue
        _id = commit['id']
        date = dateparse(commit['timestamp'])
        committer = commit['committer']['name']
        for path in commit.get('added', []):
            add_hook_log(node, node_addon, ('github_' + NodeLog.FILE_ADDED), path, date, committer, include_urls=True, sha=_id)
        for path in commit.get('modified', []):
            add_hook_log(node, node_addon, ('github_' + NodeLog.FILE_UPDATED), path, date, committer, include_urls=True, sha=_id)
        for path in commit.get('removed', []):
            add_hook_log(node, node_addon, ('github_' + NodeLog.FILE_REMOVED), path, date, committer)
    node.save()

dataset/ETHPy150Open CenterForOpenScience/osf.io/website/addons/github/views.py github_hook_callback/original