summaryrefslogtreecommitdiff
path: root/gitlab/v4/objects/hooks.py
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/v4/objects/hooks.py')
-rw-r--r--gitlab/v4/objects/hooks.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/gitlab/v4/objects/hooks.py b/gitlab/v4/objects/hooks.py
new file mode 100644
index 0000000..3bd9132
--- /dev/null
+++ b/gitlab/v4/objects/hooks.py
@@ -0,0 +1,55 @@
+from gitlab.base import * # noqa
+from gitlab.mixins import * # noqa
+
+
+class Hook(ObjectDeleteMixin, RESTObject):
+ _url = "/hooks"
+ _short_print_attr = "url"
+
+
+class HookManager(NoUpdateMixin, RESTManager):
+ _path = "/hooks"
+ _obj_cls = Hook
+ _create_attrs = (("url",), tuple())
+
+
+class ProjectHook(SaveMixin, ObjectDeleteMixin, RESTObject):
+ _short_print_attr = "url"
+
+
+class ProjectHookManager(CRUDMixin, RESTManager):
+ _path = "/projects/%(project_id)s/hooks"
+ _obj_cls = ProjectHook
+ _from_parent_attrs = {"project_id": "id"}
+ _create_attrs = (
+ ("url",),
+ (
+ "push_events",
+ "issues_events",
+ "confidential_issues_events",
+ "merge_requests_events",
+ "tag_push_events",
+ "note_events",
+ "job_events",
+ "pipeline_events",
+ "wiki_page_events",
+ "enable_ssl_verification",
+ "token",
+ ),
+ )
+ _update_attrs = (
+ ("url",),
+ (
+ "push_events",
+ "issues_events",
+ "confidential_issues_events",
+ "merge_requests_events",
+ "tag_push_events",
+ "note_events",
+ "job_events",
+ "pipeline_events",
+ "wiki_events",
+ "enable_ssl_verification",
+ "token",
+ ),
+ )