diff options
author | Gauvain Pocentek <gauvain@pocentek.net> | 2016-08-27 23:10:19 +0200 |
---|---|---|
committer | Gauvain Pocentek <gauvain@pocentek.net> | 2016-08-27 23:10:19 +0200 |
commit | 8d7faf42b3e928ead8eb6eb58b7abf94364b53e2 (patch) | |
tree | e34834aea728a625c1d5ca1cb5c3e20d61b756cf | |
parent | 40db4cdd24cf31fd6a192b229c132fe28e682eb8 (diff) | |
download | gitlab-8d7faf42b3e928ead8eb6eb58b7abf94364b53e2.tar.gz |
Add support for project deployments
-rw-r--r-- | docs/api-objects.rst | 1 | ||||
-rw-r--r-- | docs/gl_objects/deployments.py | 11 | ||||
-rw-r--r-- | docs/gl_objects/deployments.rst | 23 | ||||
-rw-r--r-- | gitlab/__init__.py | 3 | ||||
-rw-r--r-- | gitlab/objects.py | 12 |
5 files changed, 50 insertions, 0 deletions
diff --git a/docs/api-objects.rst b/docs/api-objects.rst index 82171d0..eabefc8 100644 --- a/docs/api-objects.rst +++ b/docs/api-objects.rst @@ -10,6 +10,7 @@ API objects manipulation gl_objects/builds gl_objects/commits gl_objects/deploy_keys + gl_objects/deployments gl_objects/environments gl_objects/groups gl_objects/issues diff --git a/docs/gl_objects/deployments.py b/docs/gl_objects/deployments.py new file mode 100644 index 0000000..fe1613a --- /dev/null +++ b/docs/gl_objects/deployments.py @@ -0,0 +1,11 @@ +# list +deployments = gl.project_deployments.list(project_id=1) +# or +deployments = project.deployments.list() +# end list + +# get +deployment = gl.project_deployments.get(deployment_id, project_id=1) +# or +deployment = project.deployments.get(deployment_id) +# end get diff --git a/docs/gl_objects/deployments.rst b/docs/gl_objects/deployments.rst new file mode 100644 index 0000000..1a679da --- /dev/null +++ b/docs/gl_objects/deployments.rst @@ -0,0 +1,23 @@ +########### +Deployments +########### + +Use :class:`~gitlab.objects.ProjectDeployment` objects to manipulate project +deployments. The :attr:`gitlab.Gitlab.project_deployments`, and +:attr:`Project.deployments <gitlab.objects.Project.deployments>` manager +objects provide helper functions. + +Examples +-------- + +List deployments for a project: + +.. literalinclude:: deployments.py + :start-after: # list + :end-before: # end list + +Get a single deployment: + +.. literalinclude:: deployments.py + :start-after: # get + :end-before: # end get diff --git a/gitlab/__init__.py b/gitlab/__init__.py index 14e4a5b..61192f4 100644 --- a/gitlab/__init__.py +++ b/gitlab/__init__.py @@ -92,6 +92,8 @@ class Gitlab(object): GitLab projects commits comments project_commit_statuses (ProjectCommitStatusManager): Manager for GitLab projects commits statuses + project_deployments (ProjectDeploymentManager): Manager for GitLab + projects deployments project_keys (ProjectKeyManager): Manager for GitLab projects keys project_environments (ProjectEnvironmentManager): Manager for GitLab projects environments @@ -178,6 +180,7 @@ class Gitlab(object): self.project_commits = ProjectCommitManager(self) self.project_commit_comments = ProjectCommitCommentManager(self) self.project_commit_statuses = ProjectCommitStatusManager(self) + self.project_deployments = ProjectDeploymentManager(self) self.project_keys = ProjectKeyManager(self) self.project_environments = ProjectEnvironmentManager(self) self.project_events = ProjectEventManager(self) diff --git a/gitlab/objects.py b/gitlab/objects.py index bf46f87..5a23dbf 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -1862,6 +1862,17 @@ class ProjectAccessRequestManager(BaseManager): obj_cls = ProjectAccessRequest +class ProjectDeployment(GitlabObject): + _url = '/projects/%(project_id)s/deployments' + canCreate = False + canUpdate = False + canDelete = False + + +class ProjectDeploymentManager(BaseManager): + obj_cls = ProjectDeployment + + class Project(GitlabObject): _url = '/projects' _constructorTypes = {'owner': 'User', 'namespace': 'Group'} @@ -1890,6 +1901,7 @@ class Project(GitlabObject): [('project_id', 'id')]), ('commit_statuses', ProjectCommitStatusManager, [('project_id', 'id')]), + ('deployments', ProjectDeploymentManager, [('project_id', 'id')]), ('environments', ProjectEnvironmentManager, [('project_id', 'id')]), ('events', ProjectEventManager, [('project_id', 'id')]), ('files', ProjectFileManager, [('project_id', 'id')]), |