Tech Eval: Add binary assets to a Release via gitlab-ci.yml
Problem to solve
In #36133 (closed) , we'd like to use the Package API for uploading assets into a generic registry. We need to research the Package API and how Release APIs can hook into this. #36133 (comment 255288929)
Intended users
Anyone who may create a release in GitLab:
- Delaney (Development Team Lead)
- Sasha (Software Developer)
- Devon (DevOps Engineer)
- Sidney (Systems Administrator)
Further details
Other things we may want to consider:
- Any additional required attributes for the API
- Storage quotas and limits
- UI uploader
- UI for viewing/discovering assets
- How to handle duplicate uploads
- Should we consider leveraging Git LFS?
- Add generic registry to the existing storage tracking
Proposal
I'm wondering if we can move this forward by adding a new endpoint to the Packages API that will allow users to upload/download/delete arbitrary files to a generic registry. If we can answer the above, we could define an API that allows them to set attributes for:
- Scope (instance/group/project)
- Repository type (generic/npm/maven/nuget/conan)
- Expire_in (number of days, never)
- release_asset (true/false)
- release_id
- name
- url
- description
Permissions and Security
Documentation
- Package API Docs - https://docs.gitlab.com/ee/development/packages.html
Testing
What does success look like, and how can we measure that?
- Ultimately, we want all users to be creating releases in GitLab
What is the type of buyer?
- Community Edition
- Enterprise Edition
Links / references
Related Issues: