Fix path handling when there are no repositories

oggit
Vadim vtroshchinskiy 2025-06-06 08:54:45 +02:00
parent 4734f52aba
commit 3817a359a4
1 changed files with 10 additions and 6 deletions

View File

@ -2309,13 +2309,17 @@ def git_list_repositories():
return jsonify({"error": "Repository storage not found, git functionality may not be installed."}), 500
repos = []
for entry in os.scandir(os.path.join(REPOSITORIES_BASE_PATH, OGGIT_USER)):
if entry.is_dir(follow_symlinks=False) and os.path.isfile(os.path.join(entry.path, "HEAD")):
name = entry.name
if name.endswith(".git"):
name = name[:-4]
if os.path.exists(os.path.join(REPOSITORIES_BASE_PATH, OGGIT_USER)):
# If the base path exists, but the OGGIT_USER subpath doesn't, it means we've got an empty
# install. OgGit is present, but there's no repos yet.
repos = repos + [name]
for entry in os.scandir(os.path.join(REPOSITORIES_BASE_PATH, OGGIT_USER)):
if entry.is_dir(follow_symlinks=False) and os.path.isfile(os.path.join(entry.path, "HEAD")):
name = entry.name
if name.endswith(".git"):
name = name[:-4]
repos = repos + [name]
journal.send(f"Returning {len(repos)} repositories", PRIORITY=journal.LOG_INFO, SYSLOG_IDENTIFIER="ogrepo-api_DEBUG")