@@ -1743,29 +1743,53 @@ def group_members(self, group: str) -> OrderedDict:
17431743 Args:
17441744 group (str): Name of the group.
17451745 """
1746+ users = {}
1747+
17461748 if self ._version < (6 , 0 , 0 ):
17471749 raise NotImplementedError (
1748- "Group members is not implemented in Jira before version 6.0, upgrade the instance, if possible."
1750+ "Group members is not implemented in Jira before version 6.0,"
1751+ " upgrade the instance, if possible."
17491752 )
17501753
1751- params = {"groupname" : group , "expand" : "users" }
1752- r = self ._get_json ("group" , params = params )
1753- size = r ["users" ]["size" ]
1754- end_index = r ["users" ]["end-index" ]
1755-
1756- while end_index < size - 1 :
1757- params = {
1758- "groupname" : group ,
1759- "expand" : f"users[{ end_index + 1 } :{ end_index + 50 } ]" ,
1760- }
1761- r2 = self ._get_json ("group" , params = params )
1762- for user in r2 ["users" ]["items" ]:
1763- r ["users" ]["items" ].append (user )
1764- end_index = r2 ["users" ]["end-index" ]
1754+ elif self ._version < (10 , 0 , 0 ):
1755+ params = {"groupname" : group , "expand" : "users" }
1756+ r = self ._get_json ("group" , params = params )
17651757 size = r ["users" ]["size" ]
1758+ end_index = r ["users" ]["end-index" ]
1759+
1760+ while end_index < size - 1 :
1761+ params = {
1762+ "groupname" : group ,
1763+ "expand" : f"users[{ end_index + 1 } :{ end_index + 50 } ]" ,
1764+ }
1765+ r2 = self ._get_json ("group" , params = params )
1766+ for user in r2 ["users" ]["items" ]:
1767+ r ["users" ]["items" ].append (user )
1768+ end_index = r2 ["users" ]["end-index" ]
1769+ size = r ["users" ]["size" ]
1770+ users = r ["users" ]["items" ]
1771+ else :
1772+ params = {"groupname" : group }
1773+ group_member_api_endpoint = "group/member"
1774+ r = self ._get_json (group_member_api_endpoint , params = params )
1775+ end_index = r ["maxResults" ]
1776+ is_last = r ["isLast" ]
1777+
1778+ while is_last is False :
1779+ params = {
1780+ "groupname" : group ,
1781+ "startAt" : f"{ end_index } " ,
1782+ }
1783+ r2 = self ._get_json (group_member_api_endpoint , params = params )
1784+ is_last = r2 ["isLast" ]
1785+ for user in r2 ["values" ]:
1786+ r ["values" ].append (user )
1787+ end_index += r2 ["maxResults" ]
1788+
1789+ users = r ["values" ]
17661790
17671791 result = {}
1768- for user in r [ " users" ][ "items" ] :
1792+ for user in users :
17691793 # 'id' is likely available only in older JIRA Server,
17701794 # it's not available on newer JIRA Server.
17711795 # 'name' is not available in JIRA Cloud.
0 commit comments