def clone_or_pull_repo(local_repo: Repository, remote_repo: Repository): if not os.path.isdir(local_repo.path): local_repo.clone_from_remote(remote_repo) return 'clone' else: remote_hash = remote_repo.get_head_hash() local_hash = local_repo.get_head_hash() if remote_hash != local_hash: local_repo.pull() return 'pull' else: return ''