diff options
author | Gauvain Pocentek <gauvain.pocentek@objectif-libre.com> | 2016-01-08 21:58:55 +0100 |
---|---|---|
committer | Gauvain Pocentek <gauvain.pocentek@objectif-libre.com> | 2016-01-08 21:58:55 +0100 |
commit | 37912c1ccd395b2831be0b6f4155264a1ebcb1fe (patch) | |
tree | ede1362b45671146d36657d8077a158c2f10d5c2 /gitlab/objects.py | |
parent | 2bf9794c81487883c346850a79d6b7db1295fd95 (diff) | |
parent | 77d34b353a1dfb1892de316a58b461c26eead66b (diff) | |
download | gitlab-37912c1ccd395b2831be0b6f4155264a1ebcb1fe.tar.gz |
Merge branch 'fgouteroux-add_fork_support'
Diffstat (limited to 'gitlab/objects.py')
-rw-r--r-- | gitlab/objects.py | 28 |
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' |