feat(server): limit GetItemCounts to one path

What does this MR do and why?

GetItemCounts now takes one path. The UI shows item counts only for one top-level group, and the count is expensive: in production, one large group reads 26 GiB, and 100 groups took 238 s. One path also makes the contract clear: the response is the counts of that path.

The request keeps field number 1, so a client on v0.133.0 that sends one path in traversal_paths still works.

Relates to #1281 (closed) and gitlab-org/gitlab!258502 (merged)

Testing

Unit tests for the path checks, and integration tests for a group, a project, and a Reporter.

Performance Analysis

The count query does not change. One call now counts one path.

  • This merge request does not introduce any performance regression. If a performance regression is expected, explain why.
Edited by Jean-Gabriel Doyon

Merge request reports

Loading
Loading