Skip to content

Commit 2168f99

Browse files
committed
core: services: kraken: api: Add version fetch
* Allow fetch versions available for a given extension from a given manifest or consolidated using manifest API
1 parent fe785c9 commit 2168f99

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

core/services/kraken/api/v2/routers/manifest.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,17 @@ async def fetch_by_identifier(identifier: str, data: bool = True) -> Manifest:
6666
return await manifest_manager.fetch_by_identifier(identifier, data)
6767

6868

69+
@manifest_router_v2.get("/{identifier}/details/{extension_identifier}/tags", status_code=status.HTTP_200_OK)
70+
@manifest_to_http_exception
71+
async def fetch_ext_tags_by_identifier(identifier: str, extension_identifier: str, stable: bool = False) -> list[str]:
72+
"""
73+
Get all tags for a given extension identifier using one manifest as source.
74+
"""
75+
76+
versions = await manifest_manager.fetch_extension_versions(extension_identifier, stable, identifier)
77+
78+
return [ str(version) for version in versions ]
79+
6980
@manifest_router_v2.get("/consolidated", status_code=status.HTTP_200_OK)
7081
@manifest_to_http_exception
7182
async def fetch_consolidated() -> list[RepositoryEntry]:
@@ -76,6 +87,17 @@ async def fetch_consolidated() -> list[RepositoryEntry]:
7687
return await manifest_manager.fetch_consolidated()
7788

7889

90+
@manifest_router_v2.get("/consolidated/details/{extension_identifier}/tags", status_code=status.HTTP_200_OK)
91+
@manifest_to_http_exception
92+
async def fetch_ext_tags_by_consolidated(extension_identifier: str, stable: bool = False) -> list[str]:
93+
"""
94+
Get all tags for a given extension identifier using consolidated manifest as source.
95+
"""
96+
versions = await manifest_manager.fetch_extension_versions(extension_identifier, stable)
97+
98+
return [ str(version) for version in versions ]
99+
100+
79101
@manifest_router_v2.post("/", status_code=status.HTTP_201_CREATED)
80102
@manifest_to_http_exception
81103
async def create(body: ManifestSource, validate_url: bool = True) -> Manifest:

0 commit comments

Comments
 (0)