Skip to content

Breaking change: Container registry API updates

endpoint_id: GET /api/:version/groups/:id/registry/repositories

Context

You can use the container registry API to return a list of container image repositories and their associated tags for a given groupID.

Problem to solve

Returning a list of tags for every image repository is an expensive query and can result in slow response times that are beyond GitLab's tolerated apdex threshold of 1 second.

This endpoint continues to display very poor performance - the p75 is over 5 seconds, with p99 sometimes spiking up to over 20 seconds.

image

source

Proposal

Update the API to only return a list of image repositories. The tags can be pulled for a specific image repository rather than generating every tag for every group.

This means that the GET /groups/:id/registry/repositories endpoint will no longer support the tags and tags_count parameters. To obtain the tag count/list, users can use the GET /registry/repositories/:id endpoint, which will continue to support the tags and tags_count options as it does today.

Since this may introduce a breaking change, we'll need to consider this change for milestone 15.0

Edited by Andrew Newdigate