diff options
author | fgouteroux <francois.gouteroux@d2-si.eu> | 2016-01-06 14:25:28 +0100 |
---|---|---|
committer | fgouteroux <francois.gouteroux@d2-si.eu> | 2016-01-06 14:25:28 +0100 |
commit | cedf080ff8553b6ef5cd7995f5ab3608aaeb3793 (patch) | |
tree | fc7880b59e168a1e6efdaa76e566e9fa4a9b8991 /gitlab/objects.py | |
parent | dc0099d7901bd381fabadb8be77b93e7258454b3 (diff) | |
download | gitlab-cedf080ff8553b6ef5cd7995f5ab3608aaeb3793.tar.gz |
add fork project 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' |