@@ -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
7182async 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
81103async def create (body : ManifestSource , validate_url : bool = True ) -> Manifest :
0 commit comments