Spaces:
Sleeping
Sleeping
File size: 951 Bytes
188e720 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import os
import shutil
from git import Repo, GitCommandError
import logging
log = logging.getLogger(__name__)
def clone_repo(repo_url: str, dest_folder: str = "cloned_repo") -> bool:
"""Clones or replaces a git repository locally."""
if os.path.exists(dest_folder):
log.info(f"Removing existing directory: {dest_folder}")
try:
shutil.rmtree(dest_folder)
except OSError as e:
log.error(f"Error removing directory {dest_folder}: {e}")
return False
try:
log.info(f"Cloning repo from {repo_url} into {dest_folder}...")
Repo.clone_from(repo_url, dest_folder)
log.info("Repo cloned successfully.")
return True
except GitCommandError as e:
log.error(f"Error cloning repo: Git command failed - {e}")
return False
except Exception as e:
log.error(f"An unexpected error occurred during cloning: {e}")
return False |