diff --git a/swh/loader/package/golang/loader.py b/swh/loader/package/golang/loader.py --- a/swh/loader/package/golang/loader.py +++ b/swh/loader/package/golang/loader.py @@ -11,7 +11,7 @@ import attr from swh.loader.package.loader import BasePackageInfo, PackageLoader -from swh.loader.package.utils import EMPTY_AUTHOR, api_info, release_name +from swh.loader.package.utils import EMPTY_AUTHOR, api_info, cached_method, release_name from swh.model.model import ObjectType, Release, Sha1Git, TimestampWithTimezone from swh.storage.interface import StorageInterface @@ -54,8 +54,15 @@ self.url = _uppercase_encode(self.url) def get_versions(self) -> Sequence[str]: - return api_info(f"{self.url}/@v/list").decode().splitlines() - + versions = api_info(f"{self.url}/@v/list").decode().splitlines() + # some go packages only have a development version not listed by the endpoint above, + # so ensure to return it or it will be missed by the golang loader + default_version = self.get_default_version() + if default_version not in versions: + versions.append(default_version) + return versions + + @cached_method def get_default_version(self) -> str: latest = api_info(f"{self.url}/@latest") return json.loads(latest)["Version"] diff --git a/swh/loader/package/golang/tests/data/https_proxy.golang.org/github.com_xgdapg_daemon_@latest b/swh/loader/package/golang/tests/data/https_proxy.golang.org/github.com_xgdapg_daemon_@latest new file mode 100644 --- /dev/null +++ b/swh/loader/package/golang/tests/data/https_proxy.golang.org/github.com_xgdapg_daemon_@latest @@ -0,0 +1 @@ +{"Version":"v0.0.0-20131225113241-85981e2038bf","Time":"2013-12-25T11:32:41Z"} \ No newline at end of file diff --git a/swh/loader/package/golang/tests/data/https_proxy.golang.org/github.com_xgdapg_daemon_@v_list b/swh/loader/package/golang/tests/data/https_proxy.golang.org/github.com_xgdapg_daemon_@v_list new file mode 100644 diff --git a/swh/loader/package/golang/tests/data/https_proxy.golang.org/github.com_xgdapg_daemon_@v_v0.0.0-20131225113241-85981e2038bf.info b/swh/loader/package/golang/tests/data/https_proxy.golang.org/github.com_xgdapg_daemon_@v_v0.0.0-20131225113241-85981e2038bf.info new file mode 100644 --- /dev/null +++ b/swh/loader/package/golang/tests/data/https_proxy.golang.org/github.com_xgdapg_daemon_@v_v0.0.0-20131225113241-85981e2038bf.info @@ -0,0 +1 @@ +{"Version":"v0.0.0-20131225113241-85981e2038bf","Time":"2013-12-25T11:32:41Z"} \ No newline at end of file diff --git a/swh/loader/package/golang/tests/data/https_proxy.golang.org/github.com_xgdapg_daemon_@v_v0.0.0-20131225113241-85981e2038bf.zip b/swh/loader/package/golang/tests/data/https_proxy.golang.org/github.com_xgdapg_daemon_@v_v0.0.0-20131225113241-85981e2038bf.zip new file mode 100644 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@