Skip to content

Enable keyset pagination ':id/registry/repositories/:repository_id/tags' for self-managed

Background

Currently, the API endpoint for listing registry repository tags does not support keyset pagination for self-managed GitLab instances. Keyset pagination is a more efficient method to improve performance and user experience, especially when dealing with large datasets.

Objective

This issue aims to implement keyset pagination for the ':id/registry/repositories/:repository_id/tags' endpoint in self-managed GitLab instances. This will align the functionality with GitLab.com and provide a more consistent experience across all GitLab deployments.

Current Status

Implementation Details

  1. Update the backend API to support keyset pagination for self-managed instances.
  2. Ensure the implementation is consistent with the existing keyset pagination on GitLab.com.
  3. Update the API documentation to reflect the changes for self-managed instances.
  4. Add appropriate feature flags or database-enabled controls to manage the rollout.

Acceptance Criteria

  • Keyset pagination is functional for the ':id/registry/repositories/:repository_id/tags' endpoint on self-managed GitLab instances.
  • The implementation passes all relevant tests.
  • API documentation is updated to reflect the changes.
  • Performance tests show improved efficiency compared to offset-based pagination.

Related Information

  • This feature is part of the Container Registry group's efforts to improve API performance and consistency.
  • The implementation should follow the "Container Registry Self-Managed Rollout::Enabled by Database" approach.

Additional Notes

  • Consider any potential impacts on existing integrations or scripts that rely on the current pagination method.
  • Coordinate with the documentation team to ensure clear communication of the changes to users.

References

Edited by Tim Rizzi