summaryrefslogtreecommitdiff
path: root/gitlab/objects.py
diff options
context:
space:
mode:
authorfgouteroux <francois.gouteroux@d2-si.eu>2016-01-06 14:25:28 +0100
committerfgouteroux <francois.gouteroux@d2-si.eu>2016-01-06 14:25:28 +0100
commitcedf080ff8553b6ef5cd7995f5ab3608aaeb3793 (patch)
treefc7880b59e168a1e6efdaa76e566e9fa4a9b8991 /gitlab/objects.py
parentdc0099d7901bd381fabadb8be77b93e7258454b3 (diff)
downloadgitlab-cedf080ff8553b6ef5cd7995f5ab3608aaeb3793.tar.gz
add fork project support
Diffstat (limited to 'gitlab/objects.py')
-rw-r--r--gitlab/objects.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/gitlab/objects.py b/gitlab/objects.py
index 26896f2..db21eaf 100644
--- a/gitlab/objects.py
+++ b/gitlab/objects.py
@@ -545,6 +545,15 @@ class ProjectEventManager(BaseManager):
obj_cls = ProjectEvent
+class ProjectFork(GitlabObject):
+ _url = '/projects/fork/%(project_id)s'
+ canUpdate = False
+ canDelete = False
+ canList = False
+ canGet = False
+ requiredUrlAttrs = ['project_id']
+
+
class ProjectHook(GitlabObject):
_url = '/projects/%(project_id)s/hooks'
requiredUrlAttrs = ['project_id']
@@ -956,6 +965,25 @@ class Project(GitlabObject):
r = self.gitlab._raw_delete(url, **kwargs)
raise_error_from_response(r, GitlabDeleteError)
+ def create_fork_relation(self, forked_from_id):
+ """Create a forked from/to relation between existing projects.
+
+ Args:
+ forked_from_id (int): The ID of the project that was forked from
+
+ Raises:
+ GitlabCreateError: Operation failed
+ GitlabConnectionError: Connection to GitLab-server failed
+ """
+ url = "/projects/%s/fork/%s" % (self.id, forked_from_id)
+ r = self.gitlab._raw_post(url)
+ raise_error_from_response(r, GitlabCreateError, 201)
+
+ def delete_fork_relation(self):
+ url = "/projects/%s/fork" % self.id
+ r = self.gitlab._raw_delete(url)
+ raise_error_from_response(r, GitlabDeleteError)
+
class TeamMember(GitlabObject):
_url = '/user_teams/%(team_id)s/members'