in bugbot/bzcleaner.py [0:0]
def _populate_prioritized_actions(self, bugs):
max_actions = self.get_max_actions()
max_ni = self.get_max_ni()
exclude_no_action_bugs = (
len(self.quota_actions) > 0 and self.exclude_no_action_bugs()
)
bugs_with_action = set()
for actions in self.quota_actions.values():
if len(actions) > max_ni or len(actions) > max_actions:
actions.sort(
key=lambda action: (
not action["needinfo"],
self.get_bug_sort_key(action["bug"]),
)
)
ni_count = 0
actions_count = 0
for action in actions:
bugid = str(action["bug"]["id"])
if max_actions > 0 and actions_count >= max_actions:
break
if action["needinfo"]:
if max_ni > 0 and ni_count >= max_ni:
continue
ok = self.add_auto_ni(bugid, action["needinfo"])
if not ok:
# If we can't needinfo, we do not add the autofix
continue
if "extra" in action["needinfo"]:
self.extra_ni[bugid] = action["needinfo"]["extra"]
bugs_with_action.add(bugid)
ni_count += 1
if action["autofix"]:
assert bugid not in self.autofix_changes
self.autofix_changes[bugid] = action["autofix"]
bugs_with_action.add(bugid)
if action["autofix"] or action["needinfo"]:
actions_count += 1
if exclude_no_action_bugs:
bugs = {id: bug for id, bug in bugs.items() if id in bugs_with_action}
return bugs