def gl_create_group(gl, group_name, visibility='private'):
    """
    Creates a group on a GitLab instance with a desired visibility. May throw an exception (e.g. if it already exists).
    :param gl: GitLab instance
    :param group_name: Name of the group you wise to
    :param visibility: The visibility of the group, valid options are 'private', 'internal', and 'public'. Default: 'private'
    :return: A handle to the newly create group
    """
    return gl.groups.create({'name': group_name, 'path': group_name, 'visibility': visibility})