diff options
author | Nejc Habjan <nejc.habjan@siemens.com> | 2020-08-29 17:44:08 +0200 |
---|---|---|
committer | Nejc Habjan <nejc.habjan@siemens.com> | 2020-08-31 23:48:54 +0200 |
commit | 4492fc42c9f6e0031dd3f3c6c99e4c58d4f472ff (patch) | |
tree | a04dad6678dd3c9b2e14397f9b58335340d14439 | |
parent | da8af6f6be6886dca4f96390632cf3b91891954e (diff) | |
download | gitlab-4492fc42c9f6e0031dd3f3c6c99e4c58d4f472ff.tar.gz |
feat(api): add support for instance variables
-rw-r--r-- | gitlab/__init__.py | 1 | ||||
-rw-r--r-- | gitlab/v4/objects/__init__.py | 26 | ||||
-rw-r--r-- | gitlab/v4/objects/variables.py | 49 |
3 files changed, 52 insertions, 24 deletions
diff --git a/gitlab/__init__.py b/gitlab/__init__.py index 1959adc..a1327e2 100644 --- a/gitlab/__init__.py +++ b/gitlab/__init__.py @@ -139,6 +139,7 @@ class Gitlab(object): self.pagesdomains = objects.PagesDomainManager(self) self.user_activities = objects.UserActivitiesManager(self) self.applications = objects.ApplicationManager(self) + self.variables = objects.VariableManager(self) def __enter__(self): return self diff --git a/gitlab/v4/objects/__init__.py b/gitlab/v4/objects/__init__.py index eaf1cd0..f9a2c25 100644 --- a/gitlab/v4/objects/__init__.py +++ b/gitlab/v4/objects/__init__.py @@ -23,6 +23,8 @@ from gitlab.exceptions import * # noqa from gitlab.mixins import * # noqa from gitlab import types from gitlab import utils +from gitlab.v4.objects.variables import * + VISIBILITY_PRIVATE = "private" VISIBILITY_INTERNAL = "internal" @@ -1366,18 +1368,6 @@ class GroupSubgroupManager(ListMixin, RESTManager): ) -class GroupVariable(SaveMixin, ObjectDeleteMixin, RESTObject): - _id_attr = "key" - - -class GroupVariableManager(CRUDMixin, RESTManager): - _path = "/groups/%(group_id)s/variables" - _obj_cls = GroupVariable - _from_parent_attrs = {"group_id": "id"} - _create_attrs = (("key", "value"), ("protected", "variable_type", "masked")) - _update_attrs = (("key", "value"), ("protected", "variable_type", "masked")) - - class Group(SaveMixin, ObjectDeleteMixin, RESTObject): _short_print_attr = "name" _managers = ( @@ -4116,18 +4106,6 @@ class ProjectUserManager(ListMixin, RESTManager): _list_filters = ("search",) -class ProjectVariable(SaveMixin, ObjectDeleteMixin, RESTObject): - _id_attr = "key" - - -class ProjectVariableManager(CRUDMixin, RESTManager): - _path = "/projects/%(project_id)s/variables" - _obj_cls = ProjectVariable - _from_parent_attrs = {"project_id": "id"} - _create_attrs = (("key", "value"), ("protected", "variable_type", "masked")) - _update_attrs = (("key", "value"), ("protected", "variable_type", "masked")) - - class ProjectService(SaveMixin, ObjectDeleteMixin, RESTObject): pass diff --git a/gitlab/v4/objects/variables.py b/gitlab/v4/objects/variables.py new file mode 100644 index 0000000..c8de80f --- /dev/null +++ b/gitlab/v4/objects/variables.py @@ -0,0 +1,49 @@ +""" +GitLab API: +https://docs.gitlab.com/ee/api/instance_level_ci_variables.html +https://docs.gitlab.com/ee/api/project_level_variables.html +https://docs.gitlab.com/ee/api/group_level_variables.html +""" +from gitlab.base import * # noqa +from gitlab.mixins import * # noqa + + +class Variable(SaveMixin, ObjectDeleteMixin, RESTObject): + _id_attr = "key" + + +class VariableManager(CRUDMixin, RESTManager): + _path = "/admin/ci/variables" + _obj_cls = Variable + _create_attrs = (("key", "value"), ("protected", "variable_type", "masked")) + _update_attrs = (("key", "value"), ("protected", "variable_type", "masked")) + + +class GroupVariable(SaveMixin, ObjectDeleteMixin, RESTObject): + _id_attr = "key" + + +class GroupVariableManager(CRUDMixin, RESTManager): + _path = "/groups/%(group_id)s/variables" + _obj_cls = GroupVariable + _from_parent_attrs = {"group_id": "id"} + _create_attrs = (("key", "value"), ("protected", "variable_type", "masked")) + _update_attrs = (("key", "value"), ("protected", "variable_type", "masked")) + + +class ProjectVariable(SaveMixin, ObjectDeleteMixin, RESTObject): + _id_attr = "key" + + +class ProjectVariableManager(CRUDMixin, RESTManager): + _path = "/projects/%(project_id)s/variables" + _obj_cls = ProjectVariable + _from_parent_attrs = {"project_id": "id"} + _create_attrs = ( + ("key", "value"), + ("protected", "variable_type", "masked", "environment_scope"), + ) + _update_attrs = ( + ("key", "value"), + ("protected", "variable_type", "masked", "environment_scope"), + ) |