Investigate how to add support for RPM to the Package Registry

Problem to solve

As part of our goal to build a product that in 3 years will allow 90% of our customers to use GitLab for all of their package management needs, we must add support for common package manager formats, such as RubyGems. Prior to adding support for a given package manager, we need to have a task of investigation of documentation, API endpoints, and other implementation requirements.

This issue is intended to detail the requirements for an RPM Repository MVC and link to issues outside the scope of the MVC. It will be considered complete when the product developers have broken down the MVC into sub-issues and added them to the RPM Repository epic.

Proposal

Investigate adding RPM support to the GitLab Package Registry. Based on that investigation, identify a reasonable MVC that can be delivered in 1-2 milestones.

  • Create, size and schedule a list of sub-issues and add them to the epic

Scope of MVC

  1. Use your GitLab project as a remote
  2. Authenticate with your GitLab personal access token
  3. Publish RPMs to your project
  4. Install RPMs from your project
  5. Measure push_package and pull_package events on GitLab.com using Snowplow

Beyond the MVC

  1. Measure usage with the usage ping
  2. The Package Registry UI supports RPMs, including install and setup commands, build and package specific metadata.
  3. Authenticate with a job, deploy, or project access token.
  4. Create a .gitlab-ci.yml template to make getting started easy.
Edited by Tim Rizzi