0.6.9
This commit is contained in:
@@ -58,6 +58,7 @@ class BCSInstallError(BCSError):
|
|||||||
@dataclass
|
@dataclass
|
||||||
class BCSConfig:
|
class BCSConfig:
|
||||||
store_url: str
|
store_url: str
|
||||||
|
github_token: str | None = None
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@@ -696,7 +697,11 @@ class BCSCore:
|
|||||||
|
|
||||||
async def process_one(r: RepoItem) -> None:
|
async def process_one(r: RepoItem) -> None:
|
||||||
async with sem:
|
async with sem:
|
||||||
info: RepoInfo = await fetch_repo_info(self.hass, r.url)
|
info: RepoInfo = await fetch_repo_info(
|
||||||
|
self.hass,
|
||||||
|
r.url,
|
||||||
|
github_token=self.config.github_token,
|
||||||
|
)
|
||||||
|
|
||||||
r.provider = info.provider or r.provider
|
r.provider = info.provider or r.provider
|
||||||
r.owner = info.owner or r.owner
|
r.owner = info.owner or r.owner
|
||||||
@@ -755,7 +760,11 @@ class BCSCore:
|
|||||||
|
|
||||||
async def _enrich_one_repo(self, r: RepoItem) -> None:
|
async def _enrich_one_repo(self, r: RepoItem) -> None:
|
||||||
"""Fetch provider info + metadata for a single repo item."""
|
"""Fetch provider info + metadata for a single repo item."""
|
||||||
info: RepoInfo = await fetch_repo_info(self.hass, r.url)
|
info: RepoInfo = await fetch_repo_info(
|
||||||
|
self.hass,
|
||||||
|
r.url,
|
||||||
|
github_token=self.config.github_token,
|
||||||
|
)
|
||||||
|
|
||||||
r.provider = info.provider or r.provider
|
r.provider = info.provider or r.provider
|
||||||
r.owner = info.owner or r.owner
|
r.owner = info.owner or r.owner
|
||||||
@@ -807,7 +816,7 @@ class BCSCore:
|
|||||||
_LOGGER.debug("BCS ensure_repo_details failed for %s", repo_id, exc_info=True)
|
_LOGGER.debug("BCS ensure_repo_details failed for %s", repo_id, exc_info=True)
|
||||||
return r
|
return r
|
||||||
|
|
||||||
async def list_repo_versions(self, repo_id: str) -> list[dict[str, Any]]:
|
async def list_repo_versions(self, repo_id: str, *, limit: int = 20) -> list[dict[str, str]]:
|
||||||
repo = self.get_repo(repo_id)
|
repo = self.get_repo(repo_id)
|
||||||
if not repo:
|
if not repo:
|
||||||
return []
|
return []
|
||||||
@@ -826,7 +835,14 @@ class BCSCore:
|
|||||||
return list(cached.get("versions") or [])
|
return list(cached.get("versions") or [])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
versions = await fetch_repo_versions(self.hass, repo.url)
|
versions = await fetch_repo_versions(
|
||||||
|
self.hass,
|
||||||
|
repo.url,
|
||||||
|
provider=repo.provider,
|
||||||
|
default_branch=repo.default_branch,
|
||||||
|
github_token=self.config.github_token,
|
||||||
|
limit=limit,
|
||||||
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
versions = []
|
versions = []
|
||||||
|
|
||||||
@@ -1027,23 +1043,6 @@ class BCSCore:
|
|||||||
default_branch=repo.default_branch,
|
default_branch=repo.default_branch,
|
||||||
)
|
)
|
||||||
|
|
||||||
async def list_repo_versions(self, repo_id: str, *, limit: int = 20) -> list[dict[str, str]]:
|
|
||||||
"""List installable versions/refs for a repo.
|
|
||||||
|
|
||||||
This is used by the UI to allow selecting an older tag/release.
|
|
||||||
"""
|
|
||||||
repo = self.get_repo(repo_id)
|
|
||||||
if not repo:
|
|
||||||
raise BCSInstallError(f"repo_id not found: {repo_id}")
|
|
||||||
|
|
||||||
return await fetch_repo_versions(
|
|
||||||
self.hass,
|
|
||||||
repo.url,
|
|
||||||
provider=repo.provider,
|
|
||||||
default_branch=repo.default_branch,
|
|
||||||
limit=limit,
|
|
||||||
)
|
|
||||||
|
|
||||||
def _pick_ref_for_install(self, repo: RepoItem) -> str:
|
def _pick_ref_for_install(self, repo: RepoItem) -> str:
|
||||||
if repo.latest_version and str(repo.latest_version).strip():
|
if repo.latest_version and str(repo.latest_version).strip():
|
||||||
return str(repo.latest_version).strip()
|
return str(repo.latest_version).strip()
|
||||||
|
|||||||
Reference in New Issue
Block a user