in bugbug/models/tracking.py [0:0]
def get_labels(self):
classes = {}
for bug_id, category in labels.get_labels("tracking"):
assert category in ["True", "False"], f"unexpected category {category}"
classes[int(bug_id)] = 1 if category == "True" else 0
for bug_data in bugzilla.get_bugs():
bug_id = int(bug_data["id"])
flag_found = False
tracking_flags = [
flag
for flag in bug_data.keys()
if flag.startswith("cf_tracking_firefox")
]
for tracking_flag in tracking_flags:
if bug_data[tracking_flag] in ["blocking", "+"]:
classes[bug_id] = 1
flag_found = True
elif bug_data[tracking_flag] == "-":
classes[bug_id] = 0
flag_found = True
if not flag_found:
for entry in bug_data["history"]:
for change in entry["changes"]:
if change["field_name"].startswith("cf_tracking_firefox"):
if change["added"] in ["blocking", "+"]:
classes[bug_id] = 1
elif change["added"] == "-":
classes[bug_id] = 0
if bug_data["resolution"] in ["INVALID", "DUPLICATE"]:
continue
if bug_id not in classes:
classes[bug_id] = 0
return classes, [0, 1]