Changeset View
Changeset View
Standalone View
Standalone View
swh/web/common/service.py
Show First 20 Lines • Show All 897 Lines • ▼ Show 20 Lines | ) -> Iterator[OriginVisitInfo]: | ||||
""" | """ | ||||
visits = _lookup_origin_visits(origin, last_visit=last_visit, limit=per_page) | visits = _lookup_origin_visits(origin, last_visit=last_visit, limit=per_page) | ||||
for visit in visits: | for visit in visits: | ||||
yield converters.from_origin_visit(visit) | yield converters.from_origin_visit(visit) | ||||
def lookup_origin_visit_latest( | def lookup_origin_visit_latest( | ||||
origin_url: str, require_snapshot: bool | origin_url: str, | ||||
require_snapshot: bool = False, | |||||
type: Optional[str] = None, | |||||
allowed_statuses: Optional[Iterable[str]] = None, | |||||
) -> Optional[OriginVisitInfo]: | ) -> Optional[OriginVisitInfo]: | ||||
"""Return the origin's latest visit | """Return the origin's latest visit | ||||
Args: | Args: | ||||
origin_url (str): origin to list visits for | origin_url: origin to list visits for | ||||
require_snapshot (bool): filter out origins without a snapshot | type: Optional visit type to filter on (e.g git, tar, dsc, svn, | ||||
hg, npm, pypi, ...) | |||||
allowed_statuses: list of visit statuses considered | |||||
to find the latest visit. For instance, | |||||
``allowed_statuses=['full']`` will only consider visits that | |||||
have successfully run to completion. | |||||
require_snapshot: filter out origins without a snapshot | |||||
Returns: | Returns: | ||||
The origin_visit as dict if found | The origin visit info as dict if found | ||||
""" | """ | ||||
visit_and_status = origin_get_latest_visit_status( | visit_and_status = origin_get_latest_visit_status( | ||||
storage, origin_url, require_snapshot=require_snapshot | storage, | ||||
origin_url, | |||||
type=type, | |||||
allowed_statuses=allowed_statuses, | |||||
require_snapshot=require_snapshot, | |||||
) | ) | ||||
return ( | return ( | ||||
converters.from_origin_visit( | converters.from_origin_visit( | ||||
{**visit_and_status[0].to_dict(), **visit_and_status[1].to_dict()} | {**visit_and_status[0].to_dict(), **visit_and_status[1].to_dict()} | ||||
) | ) | ||||
if visit_and_status | if visit_and_status | ||||
else None | else None | ||||
) | ) | ||||
▲ Show 20 Lines • Show All 375 Lines • Show Last 20 Lines |