4
4
from gitlab import exceptions as exc
5
5
from gitlab import types
6
6
from gitlab .base import RESTObject ,RESTObjectList
7
+ from gitlab .client import GitlabList
7
8
from gitlab .mixins import (
8
9
CRUDMixin ,
9
10
ObjectDeleteMixin ,
16
17
from .issues import GroupIssue ,GroupIssueManager ,ProjectIssue ,ProjectIssueManager
17
18
from .merge_requests import (
18
19
GroupMergeRequest ,
20
+ GroupMergeRequestManager ,
19
21
ProjectMergeRequest ,
20
22
ProjectMergeRequestManager ,
21
23
)
@@ -33,7 +35,7 @@ class GroupMilestone(SaveMixin, ObjectDeleteMixin, RESTObject):
33
35
34
36
@cli .register_custom_action (cls_names = "GroupMilestone" )
35
37
@exc .on_http_error (exc .GitlabListError )
36
- def issues (self ,** kwargs :Any )-> RESTObjectList :
38
+ def issues (self ,** kwargs :Any )-> RESTObjectList [ GroupIssue ] :
37
39
"""List issues related to this milestone.
38
40
39
41
Args:
@@ -53,14 +55,14 @@ def issues(self, **kwargs: Any) -> RESTObjectList:
53
55
path = f"{ self .manager .path } /{ self .encoded_id } /issues"
54
56
data_list = self .manager .gitlab .http_list (path ,iterator = True ,** kwargs )
55
57
if TYPE_CHECKING :
56
- assert isinstance (data_list ,RESTObjectList )
58
+ assert isinstance (data_list ,GitlabList )
57
59
manager = GroupIssueManager (self .manager .gitlab ,parent = self .manager ._parent )
58
60
# FIXME(gpocentek): the computed manager path is not correct
59
61
return RESTObjectList (manager ,GroupIssue ,data_list )
60
62
61
63
@cli .register_custom_action (cls_names = "GroupMilestone" )
62
64
@exc .on_http_error (exc .GitlabListError )
63
- def merge_requests (self ,** kwargs :Any )-> RESTObjectList :
65
+ def merge_requests (self ,** kwargs :Any )-> RESTObjectList [ GroupMergeRequest ] :
64
66
"""List the merge requests related to this milestone.
65
67
66
68
Args:
@@ -79,8 +81,10 @@ def merge_requests(self, **kwargs: Any) -> RESTObjectList:
79
81
path = f"{ self .manager .path } /{ self .encoded_id } /merge_requests"
80
82
data_list = self .manager .gitlab .http_list (path ,iterator = True ,** kwargs )
81
83
if TYPE_CHECKING :
82
- assert isinstance (data_list ,RESTObjectList )
83
- manager = GroupIssueManager (self .manager .gitlab ,parent = self .manager ._parent )
84
+ assert isinstance (data_list ,GitlabList )
85
+ manager = GroupMergeRequestManager (
86
+ self .manager .gitlab ,parent = self .manager ._parent
87
+ )
84
88
# FIXME(gpocentek): the computed manager path is not correct
85
89
return RESTObjectList (manager ,GroupMergeRequest ,data_list )
86
90
@@ -105,7 +109,7 @@ class ProjectMilestone(PromoteMixin, SaveMixin, ObjectDeleteMixin, RESTObject):
105
109
106
110
@cli .register_custom_action (cls_names = "ProjectMilestone" )
107
111
@exc .on_http_error (exc .GitlabListError )
108
- def issues (self ,** kwargs :Any )-> RESTObjectList :
112
+ def issues (self ,** kwargs :Any )-> RESTObjectList [ ProjectIssue ] :
109
113
"""List issues related to this milestone.
110
114
111
115
Args:
@@ -125,14 +129,14 @@ def issues(self, **kwargs: Any) -> RESTObjectList:
125
129
path = f"{ self .manager .path } /{ self .encoded_id } /issues"
126
130
data_list = self .manager .gitlab .http_list (path ,iterator = True ,** kwargs )
127
131
if TYPE_CHECKING :
128
- assert isinstance (data_list ,RESTObjectList )
132
+ assert isinstance (data_list ,GitlabList )
129
133
manager = ProjectIssueManager (self .manager .gitlab ,parent = self .manager ._parent )
130
134
# FIXME(gpocentek): the computed manager path is not correct
131
135
return RESTObjectList (manager ,ProjectIssue ,data_list )
132
136
133
137
@cli .register_custom_action (cls_names = "ProjectMilestone" )
134
138
@exc .on_http_error (exc .GitlabListError )
135
- def merge_requests (self ,** kwargs :Any )-> RESTObjectList :
139
+ def merge_requests (self ,** kwargs :Any )-> RESTObjectList [ ProjectMergeRequest ] :
136
140
"""List the merge requests related to this milestone.
137
141
138
142
Args:
@@ -151,7 +155,7 @@ def merge_requests(self, **kwargs: Any) -> RESTObjectList:
151
155
path = f"{ self .manager .path } /{ self .encoded_id } /merge_requests"
152
156
data_list = self .manager .gitlab .http_list (path ,iterator = True ,** kwargs )
153
157
if TYPE_CHECKING :
154
- assert isinstance (data_list ,RESTObjectList )
158
+ assert isinstance (data_list ,GitlabList )
155
159
manager = ProjectMergeRequestManager (
156
160
self .manager .gitlab ,parent = self .manager ._parent
157
161
)