-
Notifications
You must be signed in to change notification settings - Fork 8
New feature: per-group client repository definition #52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Thanks for the MR, last time I attempted this I ran into some issues with the download portion as there's no group-level download API - I attempted to contribute something for that in gitlab!82663 but it was ultimately rejected. I don't see anything group-level in https://docs.gitlab.com/ee/user/packages/generic_packages/ - are these undocumented APIs? |
@w4 I am not querying the package per-group but instead asking the users to follow the following convention : have a package name that matches the project name. Then the cargo url template can point to the generic package download URL. It is very suboptimal, but there is indeed no API to download packages at the group level - I will see if I can submit a patch to gitlab to include an actual package manager. |
The way I've worked around this limitation in our internal fork is a HTTP server that can serve redirects to known crates. Could be another one to upstream, but does mean a greater attack surface for the application. |
@w4, thanks for the shim!
Has anything changed since the creation of this PR? |
Hi @loyd, our current implementation uses the original approach from this repo which relies on this patch to Gitlab -- which they ultimately rejected to take into their upstream. Another problem is that CI tokens cannot call group-level endpoints, which would force the use of a root token - we are currently working around this with the GraphQL API, but Gitlab are actively working against us here because 16.11.7 recently put this behind a disabled-by-default feature flag with intent to remove 😬 |
Resolves #51
This introduces the notion of 'scope' which is either 'Project' (default) or 'Group'
To pull dependencies from a group package manager, clients use an url with the following
cargo/config.toml
registriesLimitations
This PR also filters packages by type so that only
generic
packages are being considered as some groups publish heterogenous packages (python / maven / generic)