22 lines
1.3 KiB
Python
22 lines
1.3 KiB
Python
"""Заполнить зеркало тестового хаба фикстурой доски и записать токены рядом с базой (для 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")
|