From bd6b4aca6dea4b533c4ab15ee649be7b9aabd761 Mon Sep 17 00:00:00 2001 From: Gauvain Pocentek Date: Thu, 26 Dec 2013 14:56:33 +0100 Subject: support projects listing: search, all, owned --- gitlab.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'gitlab.py') diff --git a/gitlab.py b/gitlab.py index 919e985..32d7ae5 100644 --- a/gitlab.py +++ b/gitlab.py @@ -337,6 +337,32 @@ class Gitlab(object): """ return self._getListOrObject(Project, id, **kwargs) + def _list_projects(self, url): + r = self.rawGet(url) + if r.status_code != 200: + raise GitlabListError + + l = [] + for o in r.json(): + l.append(Project(self, o)) + + return l + + def search_projects(self, query): + """Searches projects by name. + + Returns a list of matching projects. + """ + return self._list_projects("/projects/search/" + query) + + def all_projects(self): + """Lists all the projects (need admin rights).""" + return self._list_projects("/projects/all") + + def owned_projects(self): + """Lists owned projects.""" + return self._list_projects("/projects/owned") + def Group(self, id=None, **kwargs): """Creates/gets/lists group(s) known by the GitLab server. -- cgit v1.2.1