diff options
Diffstat (limited to 'gitlab/output.py')
| -rwxr-xr-x | gitlab/output.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gitlab/output.py b/gitlab/output.py new file mode 100755 index 000000000..745081aef --- /dev/null +++ b/gitlab/output.py @@ -0,0 +1,23 @@ +from tomlkit import dumps +from os import path, makedirs + +def find_label(labels, keyword): + match = next((s for s in labels if f"{keyword}:" in s), None) + if not match: + return f"{keyword}_missing" + return match.replace(": ", "_") + +def write_file(file_path, string): + makedirs(path.dirname(file_path), exist_ok=True) + with open(file_path, "w") as file: + file.write(string) + +def output_issue(issue): + labels = issue['labels'] + issue_id = issue['id'] + toml_string = dumps(issue) + + target_label = find_label(labels, "target") + host_label = find_label(labels, "host") + accel_label = find_label(labels, "accel") + write_file(f"issues/{target_label}/{host_label}/{accel_label}/{issue_id}.toml", toml_string) |