Google Artifact Registry Integration for Container Images (Private Preview)
## Context
Part of https://gitlab.com/groups/gitlab-org/-/epics/11443+. This epic groups all tasks related to the **Private Preview** phase. You can learn more about this [here](https://docs.google.com/document/d/1qzsm79ZWaT3yAoWvUCZEhXhUoNkMhjNQZDvoFGCmsgo/edit#bookmark=id.dazifwo60hvi) (internal).
## Scope
The scope for this work includes all the P0 requirements listed [here](https://docs.google.com/document/d/1qzsm79ZWaT3yAoWvUCZEhXhUoNkMhjNQZDvoFGCmsgo/edit#heading=h.oxkkzz31xdpf) (internal).
## Timeline
```mermaid
gantt
dateFormat YYYY-MM-DD
axisFormat %b %d
excludes weekends
section Development (Frontend - mocked data)
Menu entry and list view : df1, 2023-12-20, 18d
Artifact details view : df2, after df1, 15d
section Development (Backend)
Project integration : db1, 2023-12-20, 18d
Client class : db2, after db1, 10d
CI/CD variables : db3, after db1, 10d
GraphQL get artifacts from project API : db4, after db2 , 15d
GraphQL get artifact details query API : db5, 2024-02-12 , 10d
CI/CD component : db6, after db4, 10d
section Development (Frontend - switch to GraphQL APIs)
Revisit menu entry and list view : df3, after db4, 10d
Revisit artifact details view : df4, after db5, 10d
section Rollout
Rollout : r1, after df4, 2d
Documentation : r2, after df4, 2d
Cleanup : r3, after r2, 1d
```
### Considerations
- Based on the timeline above, the intent is to complete the initial implementation on time for release in %16.10.
- Frontend work starts before expected completion of GraphQL APIs, using mocks.
## Async Updates
See the parent epic https://gitlab.com/groups/gitlab-org/-/epics/11443 for async updates.
epic