summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNejc Habjan <nejc.habjan@siemens.com>2020-08-29 17:44:08 +0200
committerNejc Habjan <nejc.habjan@siemens.com>2020-08-31 23:48:54 +0200
commit4492fc42c9f6e0031dd3f3c6c99e4c58d4f472ff (patch)
treea04dad6678dd3c9b2e14397f9b58335340d14439
parentda8af6f6be6886dca4f96390632cf3b91891954e (diff)
downloadgitlab-4492fc42c9f6e0031dd3f3c6c99e4c58d4f472ff.tar.gz
feat(api): add support for instance variables
-rw-r--r--gitlab/__init__.py1
-rw-r--r--gitlab/v4/objects/__init__.py26
-rw-r--r--gitlab/v4/objects/variables.py49
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"),
+ )