Skip to content

Commit 16de1b0

Browse files
authored
Merge pull request #746 from therealgambo/master
add project releases api
2 parents a3a7713 + 8e55a3c commit 16de1b0

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

docs/gl_objects/projects.rst

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -663,6 +663,39 @@ Delete project push rules::
663663

664664
pr.delete()
665665

666+
Project releases
667+
================
668+
669+
Reference
670+
---------
671+
672+
* v4 API:
673+
674+
+ :class:`gitlab.v4.objects.ProjectRelease`
675+
+ :class:`gitlab.v4.objects.ProjectReleaseManager`
676+
+ :attr:`gitlab.v4.objects.Project.releases`
677+
678+
* Gitlab API: https://docs.gitlab.com/ee/api/releases/index.html
679+
680+
Examples
681+
--------
682+
683+
Get a list of releases from a project::
684+
685+
release = project.releases.list()
686+
687+
Get a single release::
688+
689+
release = project.releases.get('v1.2.3')
690+
691+
Create a release for a project tag::
692+
693+
release = project.releases.create({'name':'Demo Release', 'tag_name':'v1.2.3', 'description':'release notes go here'})
694+
695+
Delete a release::
696+
697+
release = p.releases.delete('v1.2.3')
698+
666699
Project protected tags
667700
======================
668701

gitlab/v4/objects.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1993,6 +1993,17 @@ class ProjectPagesDomainManager(CRUDMixin, RESTManager):
19931993
_update_attrs = (tuple(), ('certificate', 'key'))
19941994

19951995

1996+
class ProjectRelease(RESTObject):
1997+
_id_attr = 'tag_name'
1998+
1999+
2000+
class ProjectReleaseManager(NoUpdateMixin, RESTManager):
2001+
_path = '/projects/%(project_id)s/releases'
2002+
_obj_cls = ProjectRelease
2003+
_from_parent_attrs = {'project_id': 'id'}
2004+
_create_attrs = (('name', 'tag_name', 'description', ), ('ref', 'assets', ))
2005+
2006+
19962007
class ProjectTag(ObjectDeleteMixin, RESTObject):
19972008
_id_attr = 'name'
19982009
_short_print_attr = 'name'
@@ -3273,6 +3284,7 @@ class Project(SaveMixin, ObjectDeleteMixin, RESTObject):
32733284
('protectedtags', 'ProjectProtectedTagManager'),
32743285
('pipelineschedules', 'ProjectPipelineScheduleManager'),
32753286
('pushrules', 'ProjectPushRulesManager'),
3287+
('releases', 'ProjectReleaseManager'),
32763288
('runners', 'ProjectRunnerManager'),
32773289
('services', 'ProjectServiceManager'),
32783290
('snippets', 'ProjectSnippetManager'),

0 commit comments

Comments
 (0)