code: public List<GitlabRepositoryTree> getRepositoryTree(GitlabProject project, String path, String ref, boolean recursive) throws IOException {
          Query query = new Pagination().withPerPage(Pagination.MAX_ITEMS_PER_PAGE).asQuery()
                  .appendIf("path", path)
                  .appendIf("ref", ref)
                  .appendIf("recursive", recursive);
  
          String tailUrl = GitlabProject.URL + "/" + project.getId() + "/repository" + GitlabRepositoryTree.URL + query.toString();
          return retrieve().getAll(tailUrl, GitlabRepositoryTree[].class);
      }
docs: Get an archive of the repository
  
  @param project The Project
  @param path    The path inside the repository. Used to get content of subdirectories (optional)
  @param ref     The name of a repository branch or tag or if not given the default branch (optional)
  @throws IOException on gitlab api call error