in bugbot/bzcleaner.py [0:0]
def autofix(self, bugs):
"""Autofix the bugs according to what is returned by get_autofix_change"""
ni_changes = self.set_needinfo()
change = self.get_autofix_change()
if not ni_changes and not change:
return bugs
self.has_autofix = True
new_changes = {}
if not self.has_individual_autofix(change):
bugids = self.get_list_bugs(bugs)
for bugid in bugids:
mrg = utils.merge_bz_changes(change, ni_changes.get(bugid, {}))
if mrg:
new_changes[bugid] = mrg
else:
change = {str(k): v for k, v in change.items()}
bugids = set(change.keys()) | set(ni_changes.keys())
for bugid in bugids:
mrg = utils.merge_bz_changes(
change.get(bugid, {}), ni_changes.get(bugid, {})
)
if mrg:
new_changes[bugid] = mrg
if not self.apply_autofix:
self.autofix_changes = new_changes
return bugs
extra = self.get_db_extra()
if self.is_limited and len(new_changes) > self.normal_changes_max:
raise TooManyChangesError(bugs, new_changes, self.normal_changes_max)
self.apply_changes_on_bugzilla(
self.name(),
new_changes,
self.no_bugmail,
self.dryrun or self.test_mode,
extra,
)
return bugs