Backup automatico script del 2026-08-23 12:04
This commit is contained in:
1 parent
11823447a2
commit
795a15a7b6
66 files changed
+8546
No files matched your search
@@ -0,0 +1,96 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Crea repo progetti per davide/luca e progetti Loogle collegati."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
||||
if ROOT not in sys.path:
|
||||
sys.path.insert(0, ROOT)
|
||||
|
||||
|
||||
def _load_dotenv() -> None:
|
||||
path = os.path.join(ROOT, ".env")
|
||||
if not os.path.isfile(path):
|
||||
return
|
||||
with open(path, encoding="utf-8") as fh:
|
||||
for line in fh:
|
||||
line = line.strip()
|
||||
if not line or line.startswith("#") or "=" not in line:
|
||||
continue
|
||||
k, _, v = line.partition("=")
|
||||
os.environ[k.strip()] = v.strip().strip("'").strip('"')
|
||||
|
||||
|
||||
def ensure_repo(user: str, repo_name: str, description: str) -> str:
|
||||
from app.knowledge import gitea
|
||||
|
||||
gitea._tokens_cache = None
|
||||
full = f"{user}/{repo_name}"
|
||||
existing = {r["full_name"] for r in gitea.list_repos(username=user)["repos"]}
|
||||
if full in existing:
|
||||
print(f"repo_exists: {full}")
|
||||
return full
|
||||
created = gitea.create_repo(
|
||||
repo_name,
|
||||
username=user,
|
||||
private=True,
|
||||
description=description,
|
||||
auto_init=True,
|
||||
)
|
||||
print(f"repo_created: {created['full_name']}")
|
||||
return created["full_name"]
|
||||
|
||||
|
||||
def ensure_mcp_project(user: str, project_title: str, gitea_repo: str) -> None:
|
||||
from app.context import store as context_store
|
||||
|
||||
projects = {p["id"]: p for p in context_store.list_projects(user, include_archived=True)}
|
||||
for meta in projects.values():
|
||||
if meta.get("gitea_repo") == gitea_repo:
|
||||
print(f"project_linked: {user}/{meta['id']} -> {gitea_repo}")
|
||||
return
|
||||
slug = project_title.lower().replace(" ", "-")
|
||||
if slug in projects:
|
||||
meta = context_store.link_project_repo(user, slug, gitea_repo=gitea_repo, seed_from_gitea=True)
|
||||
print(f"project_updated: {user}/{meta['id']} -> {gitea_repo}")
|
||||
return
|
||||
meta = context_store.create_project(
|
||||
user,
|
||||
project_title,
|
||||
tags=["gitea", "p4"],
|
||||
gitea_repo=gitea_repo,
|
||||
seed_from_gitea=True,
|
||||
)
|
||||
print(f"project_created: {user}/{meta['id']} -> {gitea_repo}")
|
||||
|
||||
|
||||
def main() -> int:
|
||||
_load_dotenv()
|
||||
os.environ.setdefault("MCP_DB", os.environ.get("MCP_DB", "/data/loogle_mcp.db"))
|
||||
from app.db import init_db
|
||||
|
||||
init_db()
|
||||
|
||||
ensure_repo(
|
||||
"davide",
|
||||
"progetti",
|
||||
"Workspace personale — codice e note generate con Loogle MCP",
|
||||
)
|
||||
ensure_repo(
|
||||
"luca",
|
||||
"progetti",
|
||||
"Workspace personale — codice e note generate con Loogle MCP",
|
||||
)
|
||||
|
||||
ensure_mcp_project("davide", "Progetti Davide", "davide/progetti")
|
||||
ensure_mcp_project("luca", "Progetti Luca", "luca/progetti")
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
Reference in new issue
Block a user