@@ -995,6 +995,41 @@ def project_groups_with_administrator_permissions(self, key):
995
995
"""
996
996
return [group ["group" ]["name" ] for group in self .project_groups (key ) if group ["permission" ] == "PROJECT_ADMIN" ]
997
997
998
+ def repo_users_with_administrator_permissions (self , project_key , repo_key ):
999
+ """
1000
+ Get repository administrators for repository
1001
+ :param project_key: The project key
1002
+ :param repo_key: The repository key
1003
+ :return: List of repo administrators
1004
+ """
1005
+ repo_administrators = []
1006
+ for user in self .repo_users (project_key , repo_key ):
1007
+ if user ["permission" ] == "REPO_ADMIN" :
1008
+ repo_administrators .append (user )
1009
+ for group in self .repo_groups_with_administrator_permissions (project_key , repo_key ):
1010
+ for user in self .group_members (group ):
1011
+ repo_administrators .append (user )
1012
+ for user in self .project_users_with_administrator_permissions (project_key ):
1013
+ repo_administrators .append (user )
1014
+ # We convert to a set to ensure uniqueness then back to a list for later useability
1015
+ return list ({user ['id' ]: user for user in repo_administrators }.values ())
1016
+
1017
+ def repo_groups_with_administrator_permissions (self , project_key , repo_key ):
1018
+ """
1019
+ Get groups with admin permissions
1020
+ :param project_key:
1021
+ :param repo_key:
1022
+ :return:
1023
+ """
1024
+ repo_group_administrators = []
1025
+ for group in self .repo_groups (project_key , repo_key ):
1026
+ if group ["permission" ] == "REPO_ADMIN" :
1027
+ repo_group_administrators .append (group ['group' ]['name' ])
1028
+ for group in self .project_groups_with_administrator_permissions (project_key ):
1029
+ repo_group_administrators .append (group )
1030
+ # We convert to a set to ensure uniqueness, then back to a list for later useability
1031
+ return list (set (repo_group_administrators ))
1032
+
998
1033
def repo_grant_group_permissions (self , project_key , repo_key , groupname , permission ):
999
1034
"""
1000
1035
Grant the specified repository permission to an specific group
0 commit comments