44from gitlab import exceptions as exc
55from gitlab import types
66from gitlab .base import RESTObject , RESTObjectList
7+ from gitlab .client import GitlabList
78from gitlab .mixins import (
89 CRUDMixin ,
910 ObjectDeleteMixin ,
1617from .issues import GroupIssue , GroupIssueManager , ProjectIssue , ProjectIssueManager
1718from .merge_requests import (
1819 GroupMergeRequest ,
20+ GroupMergeRequestManager ,
1921 ProjectMergeRequest ,
2022 ProjectMergeRequestManager ,
2123)
@@ -33,7 +35,7 @@ class GroupMilestone(SaveMixin, ObjectDeleteMixin, RESTObject):
3335
3436 @cli .register_custom_action (cls_names = "GroupMilestone" )
3537 @exc .on_http_error (exc .GitlabListError )
36- def issues (self , ** kwargs : Any ) -> RESTObjectList :
38+ def issues (self , ** kwargs : Any ) -> RESTObjectList [ GroupIssue ] :
3739 """List issues related to this milestone.
3840
3941 Args:
@@ -53,14 +55,14 @@ def issues(self, **kwargs: Any) -> RESTObjectList:
5355 path = f"{ self .manager .path } /{ self .encoded_id } /issues"
5456 data_list = self .manager .gitlab .http_list (path , iterator = True , ** kwargs )
5557 if TYPE_CHECKING :
56- assert isinstance (data_list , RESTObjectList )
58+ assert isinstance (data_list , GitlabList )
5759 manager = GroupIssueManager (self .manager .gitlab , parent = self .manager ._parent )
5860 # FIXME(gpocentek): the computed manager path is not correct
5961 return RESTObjectList (manager , GroupIssue , data_list )
6062
6163 @cli .register_custom_action (cls_names = "GroupMilestone" )
6264 @exc .on_http_error (exc .GitlabListError )
63- def merge_requests (self , ** kwargs : Any ) -> RESTObjectList :
65+ def merge_requests (self , ** kwargs : Any ) -> RESTObjectList [ GroupMergeRequest ] :
6466 """List the merge requests related to this milestone.
6567
6668 Args:
@@ -79,8 +81,10 @@ def merge_requests(self, **kwargs: Any) -> RESTObjectList:
7981 path = f"{ self .manager .path } /{ self .encoded_id } /merge_requests"
8082 data_list = self .manager .gitlab .http_list (path , iterator = True , ** kwargs )
8183 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+ )
8488 # FIXME(gpocentek): the computed manager path is not correct
8589 return RESTObjectList (manager , GroupMergeRequest , data_list )
8690
@@ -105,7 +109,7 @@ class ProjectMilestone(PromoteMixin, SaveMixin, ObjectDeleteMixin, RESTObject):
105109
106110 @cli .register_custom_action (cls_names = "ProjectMilestone" )
107111 @exc .on_http_error (exc .GitlabListError )
108- def issues (self , ** kwargs : Any ) -> RESTObjectList :
112+ def issues (self , ** kwargs : Any ) -> RESTObjectList [ ProjectIssue ] :
109113 """List issues related to this milestone.
110114
111115 Args:
@@ -125,14 +129,14 @@ def issues(self, **kwargs: Any) -> RESTObjectList:
125129 path = f"{ self .manager .path } /{ self .encoded_id } /issues"
126130 data_list = self .manager .gitlab .http_list (path , iterator = True , ** kwargs )
127131 if TYPE_CHECKING :
128- assert isinstance (data_list , RESTObjectList )
132+ assert isinstance (data_list , GitlabList )
129133 manager = ProjectIssueManager (self .manager .gitlab , parent = self .manager ._parent )
130134 # FIXME(gpocentek): the computed manager path is not correct
131135 return RESTObjectList (manager , ProjectIssue , data_list )
132136
133137 @cli .register_custom_action (cls_names = "ProjectMilestone" )
134138 @exc .on_http_error (exc .GitlabListError )
135- def merge_requests (self , ** kwargs : Any ) -> RESTObjectList :
139+ def merge_requests (self , ** kwargs : Any ) -> RESTObjectList [ ProjectMergeRequest ] :
136140 """List the merge requests related to this milestone.
137141
138142 Args:
@@ -151,7 +155,7 @@ def merge_requests(self, **kwargs: Any) -> RESTObjectList:
151155 path = f"{ self .manager .path } /{ self .encoded_id } /merge_requests"
152156 data_list = self .manager .gitlab .http_list (path , iterator = True , ** kwargs )
153157 if TYPE_CHECKING :
154- assert isinstance (data_list , RESTObjectList )
158+ assert isinstance (data_list , GitlabList )
155159 manager = ProjectMergeRequestManager (
156160 self .manager .gitlab , parent = self .manager ._parent
157161 )
0 commit comments