45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
|
"""Helpers to get default repositories."""
|
||
|
import json
|
||
|
from aiogithubapi import AIOGitHub, AIOGitHubException
|
||
|
from integrationhelper import Logger
|
||
|
from custom_components.hacs.helpers.information import get_repository
|
||
|
|
||
|
|
||
|
async def get_default_repos_orgs(github: type(AIOGitHub), category: str) -> dict:
|
||
|
"""Gets default org repositories."""
|
||
|
repositories = []
|
||
|
logger = Logger("hacs")
|
||
|
orgs = {
|
||
|
"plugin": "custom-cards",
|
||
|
"integration": "custom-components",
|
||
|
"theme": "home-assistant-community-themes",
|
||
|
}
|
||
|
if category not in orgs:
|
||
|
return repositories
|
||
|
|
||
|
try:
|
||
|
repos = await github.get_org_repos(orgs[category])
|
||
|
for repo in repos:
|
||
|
repositories.append(repo.full_name)
|
||
|
|
||
|
except AIOGitHubException as exception:
|
||
|
logger.error(exception)
|
||
|
|
||
|
return repositories
|
||
|
|
||
|
|
||
|
async def get_default_repos_lists(session, token, default: str) -> dict:
|
||
|
"""Gets repositories from default list."""
|
||
|
repositories = []
|
||
|
logger = Logger("hacs")
|
||
|
|
||
|
try:
|
||
|
repo = await get_repository(session, token, "hacs/default")
|
||
|
content = await repo.get_contents(default)
|
||
|
repositories = json.loads(content.content)
|
||
|
|
||
|
except AIOGitHubException as exception:
|
||
|
logger.error(exception)
|
||
|
|
||
|
return repositories
|