diff options
-rw-r--r-- | docs/gl_objects/projects.rst | 33 | ||||
-rw-r--r-- | gitlab/v4/objects.py | 12 |
2 files changed, 45 insertions, 0 deletions
diff --git a/docs/gl_objects/projects.rst b/docs/gl_objects/projects.rst index b91f5f2..c151889 100644 --- a/docs/gl_objects/projects.rst +++ b/docs/gl_objects/projects.rst @@ -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 ====================== diff --git a/gitlab/v4/objects.py b/gitlab/v4/objects.py index 2175e0c..da46e9a 100644 --- a/gitlab/v4/objects.py +++ b/gitlab/v4/objects.py @@ -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' @@ -3273,6 +3284,7 @@ class Project(SaveMixin, ObjectDeleteMixin, RESTObject): ('protectedtags', 'ProjectProtectedTagManager'), ('pipelineschedules', 'ProjectPipelineScheduleManager'), ('pushrules', 'ProjectPushRulesManager'), + ('releases', 'ProjectReleaseManager'), ('runners', 'ProjectRunnerManager'), ('services', 'ProjectServiceManager'), ('snippets', 'ProjectSnippetManager'), |