def __history_handler()

in libmozdata/BZInfo.py [0:0]


    def __history_handler(self, bug):
        """Handler to use with the history retrieved from bugzilla

        Args:
            bug (dict): json data
            data (dict): the container which will receive the data
        """
        ownership = []
        reviewers = {}
        feedbacks = {}
        bugid = str(bug["id"])
        history = bug["history"]
        for h in history:
            who = h["who"]
            owner = None
            changes = h["changes"]
            for change in changes:
                field = change["field_name"]
                removed = change["removed"]
                added = change["added"]

                if field == "status":
                    if removed == "NEW" and added == "ASSIGNED":
                        owner = who
                elif field == "assigned_to":
                    owner = added
                elif field == "flagtypes.name":
                    # Get the reviewers
                    for m in self.review_pattern.finditer(added):
                        if who in reviewers:
                            reviewers[who].add(m.group(1))
                        else:
                            reviewers[who] = set([m.group(1)])

                    # Get people pinged for feedback
                    for m in self.feedback_pattern.finditer(added):
                        if who in feedbacks:
                            feedbacks[who].add(m.group(1))
                        else:
                            feedbacks[who] = set([m.group(1)])

            if owner and (not ownership or ownership[-1]["owner"] != owner):
                ownership.append(
                    {"owner": owner, "touch_by": who, "touch_when": h["when"]}
                )

        self.info[bugid].update(
            {"ownership": ownership, "reviewers": reviewers, "feedbacks": feedbacks}
        )