"""Заполнить зеркало тестового хаба фикстурой доски и записать токены рядом с базой (для e2e и npm run dev). Пишет в базу напрямую (mirror.apply_state, set_note), до запуска serve: гонки с первым запросом нет.""" import json import sys from pathlib import Path from jira_hub import db, mirror, paths, settings snap = json.loads(Path(sys.argv[1]).read_text(encoding="utf-8")) conn = db.connect(paths.db_path()) settings.ensure_defaults(conn) issues = [{k: v for k, v in i.items() if k not in ("fact_status", "work_kind", "neighbor")} | {"id": i["key"]} for i in snap["issues"]] links = [{"source_key": l["source"], "target_key": l["target"], "link_type": l["link_type"]} for l in snap["links"]] mirror.apply_state(conn, issues, links, neighbor_keys=[i["key"] for i in snap["issues"] if i["neighbor"]]) for i in snap["issues"]: note = {k: i[k] for k in ("fact_status", "work_kind") if i.get(k)} if note: mirror.set_note(conn, i["key"], note, "seed") (paths.home() / "tokens.json").write_text(json.dumps(settings.tokens(conn)), encoding="utf-8") conn.close() print("зеркало:", len(issues), "задач,", len(links), "связей; токены —", paths.home() / "tokens.json")