Synchronize public module directory publication
Dependency Audit / dependency-audit (push) Successful in 1m50s
Deployment Installer / deployment-installer (push) Successful in 6s
Security Audit / security-audit (push) Successful in 11m58s

This commit is contained in:
2026-08-06 22:42:25 +02:00
parent 09046e6e62
commit 78811f7f6e
8 changed files with 197 additions and 10 deletions
@@ -185,17 +185,24 @@ def module_rows(payload: object) -> list[dict[str, object]]:
for item in raw_modules:
if not isinstance(item, dict):
continue
repo = module_repo(item)
source = item.get("source") if isinstance(item.get("source"), dict) else {}
repo = string(source.get("repository")) or module_repo(item)
source_tag = string(source.get("tag"))
modules.append(
{
"module_id": string(item.get("module_id")),
"name": string(item.get("name")),
"description": string(item.get("description")),
"version": string(item.get("version")),
"repo": repo,
"source": dict(source),
"python_ref": string(item.get("python_ref")),
"python_tag": ref_tag(string(item.get("python_ref"))),
"python_tag": source_tag or ref_tag(string(item.get("python_ref"))),
"webui_ref": string(item.get("webui_ref")),
"webui_tag": ref_tag(string(item.get("webui_ref"))),
"webui_tag": source_tag or ref_tag(string(item.get("webui_ref"))),
"artifact_integrity": dict(item.get("artifact_integrity")) if isinstance(item.get("artifact_integrity"), dict) else {},
"dependencies": tuple(str(value) for value in item.get("dependencies", ()) if isinstance(value, str)) if isinstance(item.get("dependencies"), list) else (),
"optional_dependencies": tuple(str(value) for value in item.get("optional_dependencies", ()) if isinstance(value, str)) if isinstance(item.get("optional_dependencies"), list) else (),
"provides_interfaces": interface_list(item.get("provides_interfaces")),
"requires_interfaces": requirement_list(item.get("requires_interfaces")),
"migration_safety": string(item.get("migration_safety")),