def test_get_refs(self): local = open_repo('refs.git') self.addCleanup(tear_down_repo, local) client = LocalGitClient() refs = client.get_refs(local.path) self.assertDictEqual(local.refs.as_dict(), refs)
def test_get_refs(self): local = open_repo('refs.git') self.addCleanup(tear_down_repo, local) client = LocalGitClient() refs = client.get_refs(local.path) self.assertDictEqual(local.refs.as_dict(), refs)
def iter_remote_refs(self, url: str, base: Optional[str] = None, **kwargs): from dulwich.client import HTTPUnauthorized, get_transport_and_path from dulwich.errors import NotGitRepository from dulwich.porcelain import get_remote_repo try: _remote, location = get_remote_repo(self.repo, url) client, path = get_transport_and_path(location, **kwargs) except Exception as exc: raise InvalidRemoteSCMRepo(url) from exc try: if base: yield from (os.fsdecode(ref) for ref in client.get_refs(path) if ref.startswith(os.fsencode(base))) else: yield from (os.fsdecode(ref) for ref in client.get_refs(path)) except NotGitRepository as exc: raise InvalidRemoteSCMRepo(url) from exc except HTTPUnauthorized: raise GitAuthError(url)