diff options
author | Gauvain Pocentek <gauvain@pocentek.net> | 2016-05-13 19:07:48 +0200 |
---|---|---|
committer | Gauvain Pocentek <gauvain@pocentek.net> | 2016-05-13 19:07:48 +0200 |
commit | 1de6b7e7641f2c0cb101a82385cee569aa786e3f (patch) | |
tree | 832c5258a16d2c83e70a243db8c1b623bfa89959 /gitlab/objects.py | |
parent | 24c283f5861f21e51489afc815bd9f31bff58bee (diff) | |
download | gitlab-1de6b7e7641f2c0cb101a82385cee569aa786e3f.tar.gz |
implement star/unstar for projects
Diffstat (limited to 'gitlab/objects.py')
-rw-r--r-- | gitlab/objects.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gitlab/objects.py b/gitlab/objects.py index 94bf1d9..139a92e 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -1651,6 +1651,34 @@ class Project(GitlabObject): r = self.gitlab._raw_delete(url) raise_error_from_response(r, GitlabDeleteError) + def star(self): + """Star a project. + + Returns: + Project: the updated Project + + Raises: + GitlabConnectionError: If the server cannot be reached. + """ + url = "/projects/%s/star" % self.id + r = self.gitlab._raw_post(url) + raise_error_from_response(r, GitlabGetError, [201, 304]) + return Project(self.gitlab, r.json()) if r.status_code == 201 else self + + def unstar(self): + """Unstar a project. + + Returns: + Project: the updated Project + + Raises: + GitlabConnectionError: If the server cannot be reached. + """ + url = "/projects/%s/star" % self.id + r = self.gitlab._raw_delete(url) + raise_error_from_response(r, GitlabDeleteError, [200, 304]) + return Project(self.gitlab, r.json()) if r.status_code == 200 else self + class TeamMember(GitlabObject): _url = '/user_teams/%(team_id)s/members' @@ -1727,6 +1755,18 @@ class ProjectManager(BaseManager): """ return self.gitlab._raw_list("/projects/owned", Project, **kwargs) + def starred(self, **kwargs): + """List starred projects. + + Args: + all (bool): If True, return all the items, without pagination + **kwargs: Additional arguments to send to GitLab. + + Returns: + list(gitlab.Gitlab.Project): The list of starred projects. + """ + return self.gitlab._raw_list("/projects/starred", Project, **kwargs) + class UserProjectManager(BaseManager): obj_cls = UserProject |