def set_autofix()

in bugbot/rules/regression_without_regressed_by.py [0:0]


    def set_autofix(self, bugs):
        def history_handler(bug, data):
            bugid = str(bug["id"])
            deps = data[bugid]["deps"]
            stats = {}
            for h in bug["history"]:
                for change in h["changes"]:
                    if (
                        change["field_name"] in {"blocks", "depends_on"}
                        and change["added"] in deps
                    ):
                        who = h["who"]
                        stats[who] = stats.get(who, 0) + 1

            data[bugid]["winner"] = (
                max(stats.items(), key=lambda p: p[1])[0] if stats else None
            )

        no_assignee = [bugid for bugid, info in bugs.items() if not info["assignee"]]
        Bugzilla(
            bugids=no_assignee, historyhandler=history_handler, historydata=bugs
        ).get_data().wait()

        no_nick = {}
        for bugid, info in bugs.items():
            if info["assignee"]:
                winner = {
                    "mail": info["assignee"]["email"],
                    "nickname": info["assignee"]["nick"],
                }
                self.add_auto_ni(bugid, winner)
            elif info["winner"]:
                winner = info["winner"]
                if winner not in no_nick:
                    no_nick[winner] = []
                no_nick[winner].append(bugid)
            else:
                winner = {
                    "mail": info["creator"]["email"],
                    "nickname": info["creator"]["nick"],
                }
                self.add_auto_ni(bugid, winner)

        if no_nick:

            def user_handler(user, data):
                data[user["name"]] = user["nick"]

            data = {}
            BugzillaUser(
                user_names=list(no_nick.keys()),
                include_fields=["name", "nick"],
                user_handler=user_handler,
                user_data=data,
            ).wait()

            for bzmail, bugids in no_nick.items():
                nick = data[bzmail]
                for bugid in bugids:
                    self.add_auto_ni(bugid, {"mail": bzmail, "nickname": nick})