in sql/moz-fx-data-shared-prod/telemetry_dev_cycle_external/data_review_stats_v1/query.py [0:0]
def download_data_review_stats(url, params):
"""Download bugs with data-review from Bugzilla API and parse the data."""
bugzilla_response = get_api_response(url, params)
bugs = bugzilla_response["bugs"]
data_review_rows = []
for bug in bugs:
bug_id = bug["id"]
update_counter = 0
for changeset in bug["history"]:
update_datetime = changeset["when"][:-1]
who = changeset["who"]
update_counter += 1
for change in changeset["changes"]:
if change["field_name"] != "flagtypes.name":
continue
if "data-review+" in change["added"]:
data_review_rows.append(
{
"steward": who,
"action": "approval",
"bug_id": bug_id,
"update_datetime": update_datetime,
"attachment_id": change.get("attachment_id"),
"update_counter": update_counter,
}
)
if "data-review+" in change["removed"]:
data_review_rows.append(
{
"steward": who,
"action": "revoke approval",
"bug_id": bug_id,
"update_datetime": update_datetime,
"attachment_id": change.get("attachment_id"),
"update_counter": update_counter,
}
)
if "data-review-" in change["added"]:
data_review_rows.append(
{
"steward": who,
"action": "rejection",
"bug_id": bug_id,
"update_datetime": update_datetime,
"attachment_id": change.get("attachment_id"),
"update_counter": update_counter,
}
)
if "data-review-" in change["removed"]:
data_review_rows.append(
{
"steward": who,
"action": "revoke rejection",
"bug_id": bug_id,
"update_datetime": update_datetime,
"attachment_id": change.get("attachment_id"),
"update_counter": update_counter,
}
)
if "data-review?" in change["added"]:
stewards = re.findall(r"data-review\?\(([^)]+)\)", change["added"])
for steward in stewards:
data_review_rows.append(
{
"steward": steward,
"requestor": who,
"action": "request",
"bug_id": bug_id,
"update_datetime": update_datetime,
"attachment_id": change.get("attachment_id"),
"update_counter": update_counter,
}
)
if "data-review?" in change["removed"]:
stewards = re.findall(
r"data-review\?\(([^)]+)\)", change["removed"]
)
for steward in stewards:
data_review_rows.append(
{
"steward": steward,
"requestor": who,
"action": "remove request",
"bug_id": bug_id,
"update_datetime": update_datetime,
"attachment_id": change.get("attachment_id"),
"update_counter": update_counter,
}
)
return data_review_rows