From 9a9a1799cc757043e3870228d7b5f18b36c52bb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80?= <78488229+viktor138irk@users.noreply.github.com> Date: Mon, 11 May 2026 23:32:29 +0900 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20registry=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=20DevConsole?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/projects_registry.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 backend/projects_registry.py diff --git a/backend/projects_registry.py b/backend/projects_registry.py new file mode 100644 index 0000000..8833da4 --- /dev/null +++ b/backend/projects_registry.py @@ -0,0 +1,31 @@ +from pathlib import Path +import json +import os + +DATA_DIR = Path(os.getenv('DEVCONSOLE_DATA_DIR', '/var/lib/devconsole')) +REGISTRY_FILE = DATA_DIR / 'projects_registry.json' + + +def load_projects(): + if not REGISTRY_FILE.exists(): + return [] + + try: + return json.loads(REGISTRY_FILE.read_text(encoding='utf-8')) + except Exception: + return [] + + +def save_project(project: dict): + projects = load_projects() + + existing = [p for p in projects if p.get('repo_url') != project.get('repo_url')] + existing.append(project) + + REGISTRY_FILE.parent.mkdir(parents=True, exist_ok=True) + REGISTRY_FILE.write_text( + json.dumps(existing, ensure_ascii=False, indent=2), + encoding='utf-8' + ) + + return existing