Debian Package Manager MVC
<!--IssueSummary start-->
<details>
<summary>
Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.
</summary>
- [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=5835)
</details>
<!--IssueSummary end-->
We want to add Debian archive/repository support to our Artifact repository, to allow it to serve
Suggested MVC:
* Utilizes new `repositories` API endpoint: https://gitlab.com/gitlab-org/gitlab-ee/issues/5838
* Only support a single repository with the name `debian` for now. Automatic layout.
* HTTP(S) based on GitLab's config (no ftp/sftp for now)
* Authentication
* `apt` does support HTTP basic authentication, but we will need to see if it supports header based authentication which we utilize today with our API
* If so, we should add support for PAT token or [CI Job Token](https://gitlab.com/gitlab-org/gitlab-ee/issues/2770), since our API supports that today
* Storage
* Local and Object Storage
* Downloading packages
* Making packages available seems to be simple, `apt` just expects a specific layout and file formats for indices
* Uploading packages
* Generally files get placed into a queue on disk, which are then processed
* For the MVC we can consider two stages. First is a package/upload stage, which persists the package as an artifact. The second can be a process stage, which is triggered via an API which automatically adds the package to the desired archive. This stage could be a canonical CI job which does the index regeneration based on a CI image for now, to be built into GitLab later.
See https://gitlab.com/gitlab-org/gitlab/-/issues/5835#note_414103286 for implementation plan and MR progress and https://gitlab.com/gitlab-org/gitlab/-/issues/5835#note_463532286 for proposed model structure.
<!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION -->
*This page may contain information related to upcoming products, features and functionality.
It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes.
Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.*
<!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION -->
issue