diff options
author | Gauvain Pocentek <gauvainpocentek@gmail.com> | 2018-10-03 21:45:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-03 21:45:49 +0200 |
commit | 756c73c011b64f94747638f9e5d9afa128aeafe0 (patch) | |
tree | f6a213c90a372d29daac33771f8ffc6a82bfde5a | |
parent | 21d257782bb1aea9d154e797986ed0f6cdd36fad (diff) | |
parent | ea71f1d121b723140671e2090182174234f0e2a1 (diff) | |
download | gitlab-756c73c011b64f94747638f9e5d9afa128aeafe0.tar.gz |
Merge branch 'master' into docker
-rw-r--r-- | docs/gl_objects/projects.rst | 33 | ||||
-rw-r--r-- | gitlab/v4/objects.py | 13 |
2 files changed, 46 insertions, 0 deletions
diff --git a/docs/gl_objects/projects.rst b/docs/gl_objects/projects.rst index 8c2fc3f..dd444bf 100644 --- a/docs/gl_objects/projects.rst +++ b/docs/gl_objects/projects.rst @@ -657,3 +657,36 @@ Edit project push rules:: Delete project push rules:: pr.delete() + +Project protected tags +================== + +Reference +--------- + +* v4 API: + + + :class:`gitlab.v4.objects.ProjectProtectedTag` + + :class:`gitlab.v4.objects.ProjectProtectedTagManager` + + :attr:`gitlab.v4.objects.Project.protectedtags` + +* GitLab API: https://docs.gitlab.com/ce/api/protected_tags.html + +Examples +--------- + +Get a list of protected tags from a project:: + + protected_tags = project.protectedtags.list() + +Get a single protected tag or wildcard protected tag:: + + protected_tag = project.protectedtags.get('v*') + +Protect a single repository tag or several project repository tags using a wildcard protected tag:: + + project.protectedtags.create({'name': 'v*', 'create_access_level': '40'}) + +Unprotect the given protected tag or wildcard protected tag.:: + + protected_tag.delete() diff --git a/gitlab/v4/objects.py b/gitlab/v4/objects.py index 1d771ae..281301e 100644 --- a/gitlab/v4/objects.py +++ b/gitlab/v4/objects.py @@ -1965,6 +1965,18 @@ class ProjectTagManager(NoUpdateMixin, RESTManager): _create_attrs = (('tag_name', 'ref'), ('message',)) +class ProjectProtectedTag(ObjectDeleteMixin, RESTObject): + _id_attr = 'name' + _short_print_attr = 'name' + + +class ProjectProtectedTagManager(NoUpdateMixin, RESTManager): + _path = '/projects/%(project_id)s/protected_tags' + _obj_cls = ProjectProtectedTag + _from_parent_attrs = {'project_id': 'id'} + _create_attrs = (('name',), ('create_access_level',)) + + class ProjectMergeRequestApproval(SaveMixin, RESTObject): _id_attr = None @@ -3124,6 +3136,7 @@ class Project(SaveMixin, ObjectDeleteMixin, RESTObject): ('pagesdomains', 'ProjectPagesDomainManager'), ('pipelines', 'ProjectPipelineManager'), ('protectedbranches', 'ProjectProtectedBranchManager'), + ('protectedtags', 'ProjectProtectedTagManager'), ('pipelineschedules', 'ProjectPipelineScheduleManager'), ('pushrules', 'ProjectPushRulesManager'), ('runners', 'ProjectRunnerManager'), |