summaryrefslogtreecommitdiff
path: root/gitlab/objects.py
diff options
context:
space:
mode:
authorGauvain Pocentek <gauvain@pocentek.net>2016-07-16 18:52:27 +0200
committerGauvain Pocentek <gauvain@pocentek.net>2016-07-16 18:52:27 +0200
commit7ed34ed79101d0d773ecb6e638b0a4da9c3fd10c (patch)
tree78534f50c852ce386f9bd01d4cc743184872f945 /gitlab/objects.py
parent565c35efe4a4f9c86fba37a7c764ed97788eadd4 (diff)
downloadgitlab-7ed34ed79101d0d773ecb6e638b0a4da9c3fd10c.tar.gz
Implement archive/unarchive for a projet
The methods are called archive_ and unarchive_ to workaround a conflict with the deprecated archive method. Method will be renamed when the archive method is removed.
Diffstat (limited to 'gitlab/objects.py')
-rw-r--r--gitlab/objects.py42
1 files changed, 37 insertions, 5 deletions
diff --git a/gitlab/objects.py b/gitlab/objects.py
index 7fee470..8b81771 100644
--- a/gitlab/objects.py
+++ b/gitlab/objects.py
@@ -1886,34 +1886,66 @@ class Project(GitlabObject):
r = self.gitlab._raw_delete(url)
raise_error_from_response(r, GitlabDeleteError)
- def star(self):
+ def star(self, **kwargs):
"""Star a project.
Returns:
Project: the updated Project
Raises:
+ GitlabCreateError: If the action cannot be done
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])
+ r = self.gitlab._raw_post(url, **kwargs)
+ raise_error_from_response(r, GitlabCreateError, [201, 304])
return Project(self.gitlab, r.json()) if r.status_code == 201 else self
- def unstar(self):
+ def unstar(self, **kwargs):
"""Unstar a project.
Returns:
Project: the updated Project
Raises:
+ GitlabDeleteError: If the action cannot be done
GitlabConnectionError: If the server cannot be reached.
"""
url = "/projects/%s/star" % self.id
- r = self.gitlab._raw_delete(url)
+ r = self.gitlab._raw_delete(url, **kwargs)
raise_error_from_response(r, GitlabDeleteError, [200, 304])
return Project(self.gitlab, r.json()) if r.status_code == 200 else self
+ def archive_(self, **kwargs):
+ """Archive a project.
+
+ Returns:
+ Project: the updated Project
+
+ Raises:
+ GitlabCreateError: If the action cannot be done
+ GitlabConnectionError: If the server cannot be reached.
+ """
+ url = "/projects/%s/archive" % self.id
+ r = self.gitlab._raw_post(url, **kwargs)
+ raise_error_from_response(r, GitlabCreateError, 201)
+ return Project(self.gitlab, r.json()) if r.status_code == 201 else self
+
+ def unarchive_(self, **kwargs):
+ """Unarchive a project.
+
+ Returns:
+ Project: the updated Project
+
+ Raises:
+ GitlabDeleteError: If the action cannot be done
+ GitlabConnectionError: If the server cannot be reached.
+ """
+ url = "/projects/%s/unarchive" % self.id
+ r = self.gitlab._raw_delete(url, **kwargs)
+ raise_error_from_response(r, GitlabCreateError, 201)
+ return Project(self.gitlab, r.json()) if r.status_code == 201 else self
+
class TeamMember(GitlabObject):
_url = '/user_teams/%(team_id)s/members'