def _extract_file_info(git_commit_files):
    """ Given the raw file paths payload from the raw  Git commit payload, this
    function produces a list of modified file paths object
    :param git_commit_files: raw file paths payload from the raw Git commit payload
    :return a list of processed file path dict objects
    """
    paths = []
    for commit_file in git_commit_files:
        if commit_file['status'] == 'added':
            paths.append({'editType': 'add', 'path': commit_file['filename']})
        elif commit_file['status'] == 'modified':
            paths.append({'editType': 'edit', 'path': commit_file['filename']})
        elif commit_file['status'] == 'renamed':
            paths.append({'editType': 'add', 'path': commit_file['filename']})
            paths.append({'editType': 'delete', 'path': commit_file['previous_filename']})
        elif commit_file['status'] == 'deleted':
            paths.append({'editType': 'delete', 'path': commit_file['filename']})
        else:
            paths.append({'editType': 'others', 'path': commit_file['filename']})
            
    return paths