Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.
If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!
Incompatibility between Gitlab Package Registry and Proget Nuget Connector
-
Steps to reproduce:
- create group and project on gitlab
- push some nuget packages to that project package registry on gitlab
- create deploy token with "read_package_registry" scope on gitlab
- create nuget feed on proget
- create nuget connector for that feed on proget that referenced group package registry on gitlab using created deploy token
Expected result:
Nuget packages from gitlab are visible on proget feed
Actual result:
Unsupported API: missing "PackageBaseAddress" resource in service index.
Extra info:
Gitlab package registry use absolute URLs for packages, so base url is not required for URL resolution.
-
Hi @mayorovp_3701,
Based on the message, it appears to be a bug/problem with the GitLab API. It's indicating that the required
PackageBaseAddressendpoint is not present in the service index.Can you share the "service index" (i.e. the
index.json) file? It should be present at the root of the API and look something like this: https://api.nuget.org/v3/index.json-- Dean
-
Yes, PackageBaseAddress is required by schema and missing in Gitlab Package Registry. But dotnet sdk can download packages from it while Proget cannot.
-
Hi @mayorovp_3701,
This is a bug you should definitely report to GitLab -- it's clearly required by the API and all other registries support it. Without that API defined, we have to "make guesses" based on undocumented conventions (i.e.
/v3-flatcontainer/{id}), which causes headaches down the line. That's why there's an API contract :)I don't know how/why it works with
dotnet sdk-- perhaps it's using a different endpoint, or maybe it's not actually working and just going to NuGet.org. Whatever the case, it doesn't make sense for us to build workarounds for easily-fixable bugs on GitLab when other vendors seem to follow the API contract.-- Dean