in tools/plugins.py [0:0]
def _get_owner_names(self, parent, name, owner_group_ids):
accounts = set()
external_groups = set()
all_owner_group_ids = set(owner_group_ids)
# add subgroups if any
for id in owner_group_ids:
if id == CORE_MAINTAINERS_ID:
continue
else:
try:
subgroups = self.api.get(f"/groups/{id}/groups")
for s in subgroups:
all_owner_group_ids.add(s.get("id"))
except requests.HTTPError:
print(
f"Failed to read subgroup {id} of owner group of plugin {name}",
file=sys.stderr,
)
for id in all_owner_group_ids:
try:
if id == CORE_MAINTAINERS_ID:
external_groups.add(CORE_MAINTAINERS_NAME)
else:
owners = self.api.get(f"/groups/{id}/members/")
a = {
Account(o.get("_account_id"), o.get("name"), o.get("email"))
for o in owners
}
accounts.update(a)
except requests.HTTPError:
print(
f"Failed to read owner group {id} of plugin {name}", file=sys.stderr
)
csv = ", ".join(sorted({a.name for a in accounts} | external_groups))
return accounts, csv