@@ -995,6 +995,41 @@ def project_groups_with_administrator_permissions(self, key):
995995 """
996996 return [group ["group" ]["name" ] for group in self .project_groups (key ) if group ["permission" ] == "PROJECT_ADMIN" ]
997997
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+
9981033 def repo_grant_group_permissions (self , project_key , repo_key , groupname , permission ):
9991034 """
10001035 Grant the specified repository permission to an specific group
0 commit comments