From 7f4edb53e9413f401c859701d8c3bac4a40706af Mon Sep 17 00:00:00 2001 From: Raimund Hook Date: Thu, 25 Nov 2021 11:45:28 +0000 Subject: feat(api): add support for epic notes Added support for notes on group epics Signed-off-by: Raimund Hook --- gitlab/v4/objects/notes.py | 47 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) (limited to 'gitlab/v4/objects/notes.py') diff --git a/gitlab/v4/objects/notes.py b/gitlab/v4/objects/notes.py index c4055ad..833f632 100644 --- a/gitlab/v4/objects/notes.py +++ b/gitlab/v4/objects/notes.py @@ -13,12 +13,17 @@ from gitlab.mixins import ( ) from .award_emojis import ( # noqa: F401 + GroupEpicNoteAwardEmojiManager, ProjectIssueNoteAwardEmojiManager, ProjectMergeRequestNoteAwardEmojiManager, ProjectSnippetNoteAwardEmojiManager, ) __all__ = [ + "GroupEpicNote", + "GroupEpicNoteManager", + "GroupEpicDiscussionNote", + "GroupEpicDiscussionNoteManager", "ProjectNote", "ProjectNoteManager", "ProjectCommitDiscussionNote", @@ -38,6 +43,46 @@ __all__ = [ ] +class GroupEpicNote(SaveMixin, ObjectDeleteMixin, RESTObject): + awardemojis: GroupEpicNoteAwardEmojiManager + + +class GroupEpicNoteManager(CRUDMixin, RESTManager): + _path = "/groups/{group_id}/epics/{epic_iid}/notes" + _obj_cls = GroupEpicNote + _from_parent_attrs = {"group_id": "group_id", "epic_iid": "iid"} + _create_attrs = RequiredOptional(required=("body",), optional=("created_at",)) + _update_attrs = RequiredOptional(required=("body",)) + + def get( + self, id: Union[str, int], lazy: bool = False, **kwargs: Any + ) -> GroupEpicNote: + return cast(GroupEpicNote, super().get(id=id, lazy=lazy, **kwargs)) + + +class GroupEpicDiscussionNote(SaveMixin, ObjectDeleteMixin, RESTObject): + pass + + +class GroupEpicDiscussionNoteManager( + GetMixin, CreateMixin, UpdateMixin, DeleteMixin, RESTManager +): + _path = "/groups/{group_id}/epics/{epic_iid}/discussions/{discussion_id}/notes" + _obj_cls = GroupEpicDiscussionNote + _from_parent_attrs = { + "group_id": "group_id", + "epic_iid": "epic_iid", + "discussion_id": "id", + } + _create_attrs = RequiredOptional(required=("body",), optional=("created_at",)) + _update_attrs = RequiredOptional(required=("body",)) + + def get( + self, id: Union[str, int], lazy: bool = False, **kwargs: Any + ) -> GroupEpicDiscussionNote: + return cast(GroupEpicDiscussionNote, super().get(id=id, lazy=lazy, **kwargs)) + + class ProjectNote(RESTObject): pass @@ -172,7 +217,7 @@ class ProjectMergeRequestDiscussionNoteManager( class ProjectSnippetNote(SaveMixin, ObjectDeleteMixin, RESTObject): - awardemojis: ProjectMergeRequestNoteAwardEmojiManager + awardemojis: ProjectSnippetNoteAwardEmojiManager class ProjectSnippetNoteManager(CRUDMixin, RESTManager): -- cgit v1.2.1