<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def repository_tree(self, path='', ref='', recursive=False, **kwargs):
 """Return a list of files in the repository. Args: path (str):
 Path of the top folder (/ by default) ref (str):
 Reference to a commit or branch recursive (bool):
 Whether to get the tree recursively all (bool):
 If True, return all the items, without pagination per_page (int):
 Number of items to retrieve per request page (int):
 ID of the page to return (starts with page 1) as_list (bool):
 If set to False and no pagination option is defined, return a generator instead of a list **kwargs: Extra options to send to the server (e.g. sudo) Raises: GitlabAuthenticationError: If authentication is not correct GitlabGetError: If the server failed to perform the request Returns: list: The representation of the tree """

        gl_path = '/projects/%s/repository/tree' % self.get_id()
        query_data = {'recursive': recursive}
        if path:
            query_data['path'] = path
        if ref:
            query_data['ref'] = ref
        return self.manager.gitlab.http_list(gl_path, query_data=query_data,
                                             **kwargs)