@@ -1743,29 +1743,53 @@ def group_members(self, group: str) -> OrderedDict:
1743
1743
Args:
1744
1744
group (str): Name of the group.
1745
1745
"""
1746
+ users = {}
1747
+
1746
1748
if self ._version < (6 , 0 , 0 ):
1747
1749
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."
1749
1752
)
1750
1753
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 )
1765
1757
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" ]
1766
1790
1767
1791
result = {}
1768
- for user in r [ " users" ][ "items" ] :
1792
+ for user in users :
1769
1793
# 'id' is likely available only in older JIRA Server,
1770
1794
# it's not available on newer JIRA Server.
1771
1795
# 'name' is not available in JIRA Cloud.
0 commit comments