code-summarizer / code_summarizer /repo_downloader.py
Vishisht16's picture
Add application code
188e720
raw
history blame
951 Bytes
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