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}
)