diff --git a/git/config.py b/git/config.py
new file mode 100644
index 0000000..8343102
--- /dev/null
+++ b/git/config.py
+import pygit2 as git
+
+
+def get_repo_owner(repo_path: str) -> str | None:
+ """Return lipasto.owner from repo config, None when missing or on error."""
+ try:
+ repo = git.Repository(str(repo_path))
+ except git.GitError:
+ return None
+
+ try:
+ config = repo.config
+ except git.GitError:
+ return None
+
+ try:
+ return config["lipasto.owner"]
+ except KeyError:
+ return None
+ except git.GitError:
+ return None
diff --git a/git/repo.py b/git/repo.py
index 540f94e..87d3be1 100644
--- a/git/repo.py
+++ b/git/repo.py
from pathlib import Path
import pygit2 as git
-import os
-from .db import init_db, get_owner
+
+from .config import get_repo_owner
# scans given path for bare git repos and list their names and paths
def get_bare_repos(path):
repos = []
- db_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lipasto.db')
- init_db(db_path)
repo_path = Path(path)
description = desc_file.read_text().strip()
except:
pass
- owner = get_owner(db_path, item.name)
+ owner = get_repo_owner(item)
repo_info = {
"name": item.name,
"path": str(item.resolve()),