Files
gitea_runner/code/utils.py
T
2023-07-06 10:57:05 +02:00

16 lines
475 B
Python

from pydantic import AnyHttpUrl
from pathlib import Path
from git import Repo
import shutil
def clone_repository(repo_url: AnyHttpUrl) -> Path:
# extract repo name
repo_name = repo_url.split('/')[-1].replace('.git', '')
dst_dir = Path(__file__).parent / repo_name
# prepare repo download dir
if dst_dir.exists():
shutil.rmtree(dst_dir)
dst_dir.mkdir()
# git clone repo
Repo.clone_from(url=repo_url, to_path=dst_dir)
return dst_dir