diff --git a/swh/lister/nixguix/lister.py b/swh/lister/nixguix/lister.py index 1107aff..99735f1 100644 --- a/swh/lister/nixguix/lister.py +++ b/swh/lister/nixguix/lister.py @@ -626,15 +626,18 @@ class NixGuixLister(StatelessLister[PageResult]): def artifact_to_listed_origin(self, artifact: Artifact) -> Iterator[ListedOrigin]: """Given an artifact (tarball, file), yield one ListedOrigin.""" assert self.lister_obj.id is not None + loader_arguments = { + "checksums": artifact.checksums, + "checksum_layout": artifact.checksum_layout.value, + "fallback_urls": artifact.fallback_urls, + } + if artifact.ref: + loader_arguments["ref"] = artifact.ref yield ListedOrigin( lister_id=self.lister_obj.id, url=artifact.origin, visit_type=artifact.visit_type, - extra_loader_arguments={ - "checksums": artifact.checksums, - "checksum_layout": artifact.checksum_layout.value, - "fallback_urls": artifact.fallback_urls, - }, + extra_loader_arguments=loader_arguments, ) def get_origins_from_page( diff --git a/swh/lister/nixguix/tests/test_lister.py b/swh/lister/nixguix/tests/test_lister.py index 148688a..8cd40fe 100644 --- a/swh/lister/nixguix/tests/test_lister.py +++ b/swh/lister/nixguix/tests/test_lister.py @@ -359,6 +359,9 @@ def test_lister_nixguix_ok(datadir, swh_scheduler, requests_mock): # no last update is listed on those manifests assert listed_origin.last_update is None + if listed_origin.visit_type in {"git-checkout", "svn-export", "hg-checkout"}: + assert listed_origin.extra_loader_arguments["ref"] is not None + mapping_visit_types[listed_origin.visit_type] += 1 assert dict(mapping_visit_types) == expected_visit_types