Upload packages to Generic package registry

Problem to solve

Create a place for packaged binaries created during release generation and also for a repository for a format not yet supported by GitLab (where there are no dependency resolution requirements). In some cases dev team generated binary packages can be downloaded and run locally if they have no dependencies or if all dependencies are in public repositories. For example custom RPM files.

Intended users

User experience goal

Users should be able to upload, list and download packages in the feed.

Proposal

Implement new API endpoint to upload generic packages:

/api/v4/projects/:id/packages/generic/:package_name/:package_version/:file_name

Example usage

curl --header 'Private-Token: <personal-access-token>' \
  --upload-file ./gitlab-runner-windows-amd64.exe \
  http://gitlab.com/api/v4/projects/42/packages/generic/gitlab-runner/1.0.0/gitlab-runner-windows-amd64.exe

We also need to update Workhorse to add support for object accelerated uploads.

Documentation

We should add documentation for how to upload packages to the generic registry in https://docs.gitlab.com/ee/user/project/releases/#release-assets

What is the type of buyer?

GitLab Core

Is this a cross-stage feature?

~"group::package" and ~"group::release management"

Edited by Krasimir Angelov