diff options
Diffstat (limited to 'gitlab/objects.py')
-rw-r--r-- | gitlab/objects.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/gitlab/objects.py b/gitlab/objects.py index 0897c68..e95a894 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -752,6 +752,30 @@ class KeyManager(BaseManager): obj_cls = Key +class NotificationSettings(GitlabObject): + _url = '/notification_settings' + _id_in_update_url = False + optionalUpdateAttrs = ['level', + 'notification_email', + 'new_note', + 'new_issue', + 'reopen_issue', + 'close_issue', + 'reassign_issue', + 'new_merge_request', + 'reopen_merge_request', + 'close_merge_request', + 'reassign_merge_request', + 'merge_merge_request'] + canList = False + canCreate = False + canDelete = False + + +class NotificationSettingsManager(BaseManager): + obj_cls = NotificationSettings + + class GroupIssue(GitlabObject): _url = '/groups/%(group_id)s/issues' canGet = 'from_list' @@ -783,6 +807,15 @@ class GroupMemberManager(BaseManager): obj_cls = GroupMember +class GroupNotificationSettings(NotificationSettings): + _url = '/groups/%(group_id)s/notification_settings' + requiredUrlAttrs = ['group_id'] + + +class GroupNotificationSettingsManager(BaseManager): + obj_cls = GroupNotificationSettings + + class GroupProject(GitlabObject): _url = '/groups/%(group_id)s/projects' canGet = 'from_list' @@ -835,6 +868,8 @@ class Group(GitlabObject): managers = [ ('accessrequests', GroupAccessRequestManager, [('group_id', 'id')]), ('members', GroupMemberManager, [('group_id', 'id')]), + ('notificationsettings', GroupNotificationSettingsManager, + [('group_id', 'id')]), ('projects', GroupProjectManager, [('group_id', 'id')]), ('issues', GroupIssueManager, [('group_id', 'id')]) ] @@ -1385,6 +1420,15 @@ class ProjectNoteManager(BaseManager): obj_cls = ProjectNote +class ProjectNotificationSettings(NotificationSettings): + _url = '/projects/%(project_id)s/notification_settings' + requiredUrlAttrs = ['project_id'] + + +class ProjectNotificationSettingsManager(BaseManager): + obj_cls = ProjectNotificationSettings + + class ProjectTagRelease(GitlabObject): _url = '/projects/%(project_id)s/repository/tags/%(tag_name)/release' canDelete = False @@ -1987,6 +2031,8 @@ class Project(GitlabObject): ('mergerequests', ProjectMergeRequestManager, [('project_id', 'id')]), ('milestones', ProjectMilestoneManager, [('project_id', 'id')]), ('notes', ProjectNoteManager, [('project_id', 'id')]), + ('notificationsettings', ProjectNotificationSettingsManager, + [('project_id', 'id')]), ('pipelines', ProjectPipelineManager, [('project_id', 'id')]), ('services', ProjectServiceManager, [('project_id', 'id')]), ('snippets', ProjectSnippetManager, [('project_id', 'id')]), |