Closed
Description
To run the script properly, just create a creds.py file with a token variable, and a .tmp folder
import creds
from git import Repo, RemoteProgress
from pathlib import Path
import uuid
username = "gitpython-developers"
repo_name = "GitPython"
uuid = uuid.uuid4().hex[:20]
# ---------------
class Progress(RemoteProgress):
def update(self, op_code, cur_count, max_count=None, message=''):
print(f"{op_code} {cur_count} {max_count} {message}")
repo_url = f'https://{creds.token}:x-oauth-basic@github.com/{username}/{repo_name}'
repo_path = Path('.tmp') / Path(uuid)
print(f'Cloning the commits history of {repo_name}...')
err = None
try:
Repo.clone_from("https://github.com/gitpython-developers/GitPython", repo_path, progress=Progress(), multi_options=["--filter=tree:0"])
#Repo.clone_from(repo_url, repo_path, progress=Progress(), multi_options=["--filter=tree:0"])
except Exception as error:
err = error
print(err)
If you comment the 1st Repo.clone_from and uncomment the 2nd, the progress will not work anymore, even though the progress is showing up using the git binary.