diff options
author | Oleksii Shkurupii <Oleksii.Shkurupii@playtech.com> | 2020-08-26 13:37:03 +0300 |
---|---|---|
committer | Oleksii Shkurupii <Oleksii.Shkurupii@playtech.com> | 2020-08-26 15:13:08 +0300 |
commit | 88f8cc78f97156d5888a9600bdb8721720563120 (patch) | |
tree | 78e1d318810028d57b8d558116e6bbef76efa602 | |
parent | e2dc9ece1a0af37073c41bfa8161fcec5fa01234 (diff) | |
download | gitlab-88f8cc78f97156d5888a9600bdb8721720563120.tar.gz |
feat: add support to resource milestone events
Fixes #1154
-rw-r--r-- | docs/gl_objects/milestones.rst | 33 | ||||
-rw-r--r-- | gitlab/v4/objects.py | 24 | ||||
-rw-r--r-- | tools/python_test_v4.py | 13 |
3 files changed, 70 insertions, 0 deletions
diff --git a/docs/gl_objects/milestones.rst b/docs/gl_objects/milestones.rst index f24e13f..40f9ba6 100644 --- a/docs/gl_objects/milestones.rst +++ b/docs/gl_objects/milestones.rst @@ -2,6 +2,9 @@ Milestones ########## +Project milestones +================== + Reference --------- @@ -70,3 +73,33 @@ List the issues related to a milestone:: List the merge requests related to a milestone:: merge_requests = milestone.merge_requests() + +Milestone events +============ + +Resource milestone events keep track of what happens to GitLab issues and merge requests. + +Reference +--------- + +* v4 API: + + + :class:`gitlab.v4.objects.ProjectIssueResourceMilestoneEvent` + + :class:`gitlab.v4.objects.ProjectIssueResourceMilestoneEventManager` + + :attr:`gitlab.v4.objects.ProjectIssue.resourcemilestoneevents` + + :class:`gitlab.v4.objects.ProjectMergeRequestResourceMilestoneEvent` + + :class:`gitlab.v4.objects.ProjectMergeRequestResourceMilestoneEventManager` + + :attr:`gitlab.v4.objects.ProjectMergeRequest.resourcemilestoneevents` + +* GitLab API: https://docs.gitlab.com/ee/api/resource_milestone_events.html + +Examples +-------- + +Get milestones for a resource (issue, merge request):: + + milestones = resource.resourcemilestoneevents.list() + +Get a specific milestone for a resource:: + + milestone = resource.resourcemilestoneevents.get(milestone_id) diff --git a/gitlab/v4/objects.py b/gitlab/v4/objects.py index 2f3e8a5..16efc39 100644 --- a/gitlab/v4/objects.py +++ b/gitlab/v4/objects.py @@ -2654,6 +2654,16 @@ class ProjectIssueResourceLabelEventManager(RetrieveMixin, RESTManager): _from_parent_attrs = {"project_id": "project_id", "issue_iid": "iid"} +class ProjectIssueResourceMilestoneEvent(RESTObject): + pass + + +class ProjectIssueResourceMilestoneEventManager(RetrieveMixin, RESTManager): + _path = "/projects/%(project_id)s/issues/%(issue_iid)s/resource_milestone_events" + _obj_cls = ProjectIssueResourceMilestoneEvent + _from_parent_attrs = {"project_id": "project_id", "issue_iid": "iid"} + + class ProjectIssue( UserAgentDetailMixin, SubscribableMixin, @@ -2672,6 +2682,7 @@ class ProjectIssue( ("links", "ProjectIssueLinkManager"), ("notes", "ProjectIssueNoteManager"), ("resourcelabelevents", "ProjectIssueResourceLabelEventManager"), + ("resourcemilestoneevents", "ProjectIssueResourceMilestoneEventManager"), ) @cli.register_custom_action("ProjectIssue", ("to_project_id",)) @@ -3065,6 +3076,18 @@ class ProjectMergeRequestResourceLabelEventManager(RetrieveMixin, RESTManager): _from_parent_attrs = {"project_id": "project_id", "mr_iid": "iid"} +class ProjectMergeRequestResourceMilestoneEvent(RESTObject): + pass + + +class ProjectMergeRequestResourceMilestoneEventManager(RetrieveMixin, RESTManager): + _path = ( + "/projects/%(project_id)s/merge_requests/%(mr_iid)s/resource_milestone_events" + ) + _obj_cls = ProjectMergeRequestResourceMilestoneEvent + _from_parent_attrs = {"project_id": "project_id", "mr_iid": "iid"} + + class ProjectMergeRequest( SubscribableMixin, TodoMixin, @@ -3083,6 +3106,7 @@ class ProjectMergeRequest( ("discussions", "ProjectMergeRequestDiscussionManager"), ("notes", "ProjectMergeRequestNoteManager"), ("resourcelabelevents", "ProjectMergeRequestResourceLabelEventManager"), + ("resourcemilestoneevents", "ProjectMergeRequestResourceMilestoneEventManager"), ) @cli.register_custom_action("ProjectMergeRequest") diff --git a/tools/python_test_v4.py b/tools/python_test_v4.py index 6ecaf24..717bd24 100644 --- a/tools/python_test_v4.py +++ b/tools/python_test_v4.py @@ -782,6 +782,11 @@ assert events event = issue1.resourcelabelevents.get(events[0].id) assert event +# issue milestones +milestones = issue1.resourcemilestoneevents.list() +assert milestones +milestone = issue1.resourcemilestoneevents.get(milestones[0].id) +assert milestone size = len(issue1.discussions.list()) discussion = issue1.discussions.create({"body": "Discussion body"}) @@ -891,6 +896,14 @@ assert events event = mr.resourcelabelevents.get(events[0].id) assert event +# mr milestone events +mr.milestone_id = m1.id +mr.save() +milestones = mr.resourcemilestoneevents.list() +assert milestones +milestone = mr.resourcemilestoneevents.get(milestones[0].id) +assert milestone + # rebasing assert mr.rebase() |