Skip to content

Commit 6e5ef55

Browse files
paulfariello-synnejch
authored andcommitted
feat: add resource_weight_event for ProjectIssue
1 parent e973729 commit 6e5ef55

File tree

4 files changed

+37
-1
lines changed

4 files changed

+37
-1
lines changed

docs/gl_objects/issues.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,10 @@ Get the list of iteration events::
207207

208208
iteration_events = issue.resource_iteration_events.list()
209209

210+
Get the list of weight events::
211+
212+
weight_events = issue.resource_weight_events.list()
213+
210214
Issue links
211215
===========
212216

gitlab/v4/objects/events.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
"ProjectIssueResourceMilestoneEventManager",
1717
"ProjectIssueResourceStateEvent",
1818
"ProjectIssueResourceIterationEventManager",
19+
"ProjectIssueResourceWeightEventManager",
1920
"ProjectIssueResourceIterationEvent",
21+
"ProjectIssueResourceWeightEvent",
2022
"ProjectIssueResourceStateEventManager",
2123
"ProjectMergeRequestResourceLabelEvent",
2224
"ProjectMergeRequestResourceLabelEventManager",
@@ -135,6 +137,23 @@ def get(
135137
)
136138

137139

140+
class ProjectIssueResourceWeightEvent(RESTObject):
141+
pass
142+
143+
144+
class ProjectIssueResourceWeightEventManager(RetrieveMixin, RESTManager):
145+
_path = "/projects/{project_id}/issues/{issue_iid}/resource_weight_events"
146+
_obj_cls = ProjectIssueResourceWeightEvent
147+
_from_parent_attrs = {"project_id": "project_id", "issue_iid": "iid"}
148+
149+
def get(
150+
self, id: Union[str, int], lazy: bool = False, **kwargs: Any
151+
) -> ProjectIssueResourceWeightEvent:
152+
return cast(
153+
ProjectIssueResourceWeightEvent, super().get(id=id, lazy=lazy, **kwargs)
154+
)
155+
156+
138157
class ProjectMergeRequestResourceLabelEvent(RESTObject):
139158
pass
140159

gitlab/v4/objects/issues.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
ProjectIssueResourceLabelEventManager,
2828
ProjectIssueResourceMilestoneEventManager,
2929
ProjectIssueResourceStateEventManager,
30+
ProjectIssueResourceWeightEventManager,
3031
)
3132
from .notes import ProjectIssueNoteManager # noqa: F401
3233

@@ -121,6 +122,7 @@ class ProjectIssue(
121122
resourcemilestoneevents: ProjectIssueResourceMilestoneEventManager
122123
resourcestateevents: ProjectIssueResourceStateEventManager
123124
resource_iteration_events: ProjectIssueResourceIterationEventManager
125+
resource_weight_events: ProjectIssueResourceWeightEventManager
124126

125127
@cli.register_custom_action("ProjectIssue", ("to_project_id",))
126128
@exc.on_http_error(exc.GitlabUpdateError)

tests/functional/api/test_issues.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,25 @@ def test_issue_links(project, issue):
6666
assert not issue.links.list()
6767

6868

69-
def test_issue_events(issue):
69+
def test_issue_label_events(issue):
7070
events = issue.resourcelabelevents.list()
7171
assert isinstance(events, list)
7272

7373
event = issue.resourcelabelevents.get(events[0].id)
7474
assert isinstance(event, gitlab.v4.objects.ProjectIssueResourceLabelEvent)
7575

7676

77+
def test_issue_weight_events(issue):
78+
issue.weight = 13
79+
issue.save()
80+
81+
events = issue.resource_weight_events.list()
82+
assert isinstance(events, list)
83+
84+
event = issue.resource_weight_events.get(events[0].id)
85+
assert isinstance(event, gitlab.v4.objects.ProjectIssueResourceWeightEvent)
86+
87+
7788
def test_issue_milestones(project, milestone):
7889
data = {"title": "my issue 1", "milestone_id": milestone.id}
7990
issue = project.issues.create(data)

0 commit comments

Comments
 (0)