in bugbot/rules/vacant_triage_owner.py [0:0]
def identify_vacant_components(self):
# Filter out products and components that are not active
products = [
{
**product,
"components": [
component
for component in product["components"]
if component["is_active"]
],
}
for product in self.fetch_products()
if product["is_active"]
]
triage_owners = set()
for product in products:
for component in product["components"]:
triage_owners.add(component["triage_owner"])
user_activity = UserActivity(self.activity_weeks_count, self.absent_weeks_count)
inactive_users = user_activity.check_users(triage_owners)
team_managers = TeamManagers()
vacant_components = []
for product in products:
for component in product["components"]:
triage_owner = component["triage_owner"]
if triage_owner not in inactive_users:
continue
manager = team_managers.get_team_manager(component["team_name"])
info = {
"id": component["id"],
"manager": manager["name"],
"team": component["team_name"],
"product": product["name"],
"component": component["name"],
"triage_owner": triage_owner,
"status": user_activity.get_string_status(
inactive_users[triage_owner]["status"]
),
}
vacant_components.append(info)
self.add(manager["mozilla_email"], info)
return vacant_components