repository_reader / core /git_manager.py
DeL-TaiseiOzaki
first commit
227e75d
raw
history blame
1.08 kB
import subprocess
from pathlib import Path
class GitManager:
def __init__(self, repo_url: str, target_dir: Path):
self.repo_url = repo_url
self.target_dir = target_dir
def clone_repository(self) -> bool:
try:
if self.target_dir.exists():
raise FileExistsError(f"Directory already exists: {self.target_dir}")
self.target_dir.parent.mkdir(parents=True, exist_ok=True)
subprocess.run(
["git", "clone", self.repo_url, str(self.target_dir)],
check=True,
capture_output=True,
text=True
)
return True
except subprocess.CalledProcessError as e:
raise RuntimeError(f"Clone error: {e.stderr}")
def cleanup(self):
if self.target_dir.exists():
subprocess.run(
["rm", "-rf", str(self.target_dir)],
check=True,
capture_output=True,
text=True
)