scripts/get_type_labels.py (47 lines of code) (raw):
# -*- coding: utf-8 -*-
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
# You can obtain one at http://mozilla.org/MPL/2.0/.
import argparse
import csv
import sys
import requests
def parse_args(args):
parser = argparse.ArgumentParser()
parser.add_argument(
"--types",
help="Types to retrieve",
default=["defect", "enhancement", "task"],
nargs="*",
)
return parser.parse_args(args)
def main(args):
params = {
"columnlist": "bug_type",
"order": "bug_id",
"j_top": "OR",
"f1": "bug_type",
"o1": "everchanged",
"f2": "OP",
"f3": "bug_type",
"o3": "anyexact",
"v3": "task,enhancement",
"f4": "bug_id",
"o4": "greaterthan",
"v4": 1540807,
"f5": "CP",
"ctype": "csv",
}
r = requests.get("https://bugzilla.mozilla.org/buglist.cgi", params=params)
r.raise_for_status()
with open("bugbug/labels/defect_enhancement_task_h.csv", "r") as f:
reader = csv.reader(f)
headers = next(reader)
bug_type_map = {int(row[0]): row[1] for row in reader}
# We add to our csv both labels that were changed, and labels that are in
# the list of requested types.
reader = csv.reader(r.text.splitlines())
next(reader)
for row in reader:
if int(row[0]) in bug_type_map or row[1] in args.types:
bug_type_map[int(row[0])] = row[1]
with open("bugbug/labels/defect_enhancement_task_h.csv", "w") as f:
writer = csv.writer(f)
writer.writerow(headers)
writer.writerows(sorted(bug_type_map.items()))
if __name__ == "__main__":
main(parse_args(sys.argv[1:]))