Improve artifact availability UX
CI / php-store (push) Waiting to run
CI / python-components (push) Waiting to run

This commit is contained in:
2026-08-24 22:42:56 +02:00
parent 3028bf522c
commit 0440b6a48f
12 changed files with 85 additions and 23 deletions
+21 -1
View File
@@ -166,7 +166,7 @@ class CatalogPlugin:
)
def select_release(self, netbox_version: str, requested_version: str = "") -> Release:
compatible = [release for release in self.releases if release.supports(netbox_version, self)]
compatible = list(self.installable_releases(netbox_version))
if requested_version:
compatible = [release for release in compatible if release.version == requested_version]
elif self.latest_version:
@@ -177,6 +177,26 @@ class CatalogPlugin:
raise StoreClientError("No compatible release is available for this NetBox version.")
return max(compatible, key=lambda release: Version(release.version))
def installable_releases(
self,
netbox_version: str,
*,
require_approval_marker: bool = False,
) -> tuple[Release, ...]:
return tuple(
release
for release in self.releases
if (
release.supports(netbox_version, self)
and release.approved
and release.immutable
and bool(release.download_url)
and bool(release.sha256)
and release.artifact_kind in {"wheel", "source_archive"}
and (not require_approval_marker or bool(release.approved_payload_sha256))
)
)
class StoreClient:
API_LIMIT = 5 * 1024 * 1024