From 940e3eaec7658a8e348076723147d9336bf88927 Mon Sep 17 00:00:00 2001 From: Luka Hietala Date: Mon, 8 Dec 2025 20:51:31 +0200 Subject: [PATCH] get repo owner from git config and start using typing --- git/config.py | 21 +++++++++++++++++++++ git/repo.py | 8 +++----- 2 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 git/config.py diff --git a/git/config.py b/git/config.py new file mode 100644 index 0000000..8343102 --- /dev/null +++ b/git/config.py @@ -0,0 +1,21 @@ +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 @@ -1,13 +1,11 @@ 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) @@ -23,7 +21,7 @@ def get_bare_repos(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()), -- 2.47.3