summaryrefslogtreecommitdiff
path: root/gitlab/v4/objects/custom_attributes.py
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/v4/objects/custom_attributes.py')
-rw-r--r--gitlab/v4/objects/custom_attributes.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/gitlab/v4/objects/custom_attributes.py b/gitlab/v4/objects/custom_attributes.py
new file mode 100644
index 0000000..3a86072
--- /dev/null
+++ b/gitlab/v4/objects/custom_attributes.py
@@ -0,0 +1,32 @@
+from gitlab.base import * # noqa
+from gitlab.mixins import * # noqa
+
+
+class GroupCustomAttribute(ObjectDeleteMixin, RESTObject):
+ _id_attr = "key"
+
+
+class GroupCustomAttributeManager(RetrieveMixin, SetMixin, DeleteMixin, RESTManager):
+ _path = "/groups/%(group_id)s/custom_attributes"
+ _obj_cls = GroupCustomAttribute
+ _from_parent_attrs = {"group_id": "id"}
+
+
+class ProjectCustomAttribute(ObjectDeleteMixin, RESTObject):
+ _id_attr = "key"
+
+
+class ProjectCustomAttributeManager(RetrieveMixin, SetMixin, DeleteMixin, RESTManager):
+ _path = "/projects/%(project_id)s/custom_attributes"
+ _obj_cls = ProjectCustomAttribute
+ _from_parent_attrs = {"project_id": "id"}
+
+
+class UserCustomAttribute(ObjectDeleteMixin, RESTObject):
+ _id_attr = "key"
+
+
+class UserCustomAttributeManager(RetrieveMixin, SetMixin, DeleteMixin, RESTManager):
+ _path = "/users/%(user_id)s/custom_attributes"
+ _obj_cls = UserCustomAttribute
+ _from_parent_attrs = {"user_id": "id"}