Skip to content

Commit

Permalink
Merge pull request #746 from therealgambo/master
Browse files Browse the repository at this point in the history
add project releases api
  • Loading branch information
max-wittig committed Apr 24, 2019
2 parents a3a7713 + 8e55a3c commit 16de1b0
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 0 deletions.
33 changes: 33 additions & 0 deletions docs/gl_objects/projects.rst
Expand Up @@ -663,6 +663,39 @@ Delete project push rules::

pr.delete()

Project releases
================

Reference
---------

* v4 API:

+ :class:`gitlab.v4.objects.ProjectRelease`
+ :class:`gitlab.v4.objects.ProjectReleaseManager`
+ :attr:`gitlab.v4.objects.Project.releases`

* Gitlab API: https://docs.gitlab.com/ee/api/releases/index.html

Examples
--------

Get a list of releases from a project::

release = project.releases.list()

Get a single release::

release = project.releases.get('v1.2.3')

Create a release for a project tag::

release = project.releases.create({'name':'Demo Release', 'tag_name':'v1.2.3', 'description':'release notes go here'})

Delete a release::

release = p.releases.delete('v1.2.3')

Project protected tags
======================

Expand Down
12 changes: 12 additions & 0 deletions gitlab/v4/objects.py
Expand Up @@ -1993,6 +1993,17 @@ class ProjectPagesDomainManager(CRUDMixin, RESTManager):
_update_attrs = (tuple(), ('certificate', 'key'))


class ProjectRelease(RESTObject):
_id_attr = 'tag_name'


class ProjectReleaseManager(NoUpdateMixin, RESTManager):
_path = '/projects/%(project_id)s/releases'
_obj_cls = ProjectRelease
_from_parent_attrs = {'project_id': 'id'}
_create_attrs = (('name', 'tag_name', 'description', ), ('ref', 'assets', ))


class ProjectTag(ObjectDeleteMixin, RESTObject):
_id_attr = 'name'
_short_print_attr = 'name'
Expand Down Expand Up @@ -3273,6 +3284,7 @@ class Project(SaveMixin, ObjectDeleteMixin, RESTObject):
('protectedtags', 'ProjectProtectedTagManager'),
('pipelineschedules', 'ProjectPipelineScheduleManager'),
('pushrules', 'ProjectPushRulesManager'),
('releases', 'ProjectReleaseManager'),
('runners', 'ProjectRunnerManager'),
('services', 'ProjectServiceManager'),
('snippets', 'ProjectSnippetManager'),
Expand Down

0 comments on commit 16de1b0

Please sign in to comment.