Investigate tree API performance/options for getting entire trees
Problem to solve
Customer needs to be able to get a repository's entire tree via the API. They're currently using the Repository Tree API. However, the API is limited to 100 results per page. In order to retrieve the entire tree from a large repository it can take 30 minutes to iterate over the pages.
Is it possible to do one of the following:
- Improve the performance of the tree endpoint so it doesn't take so long even when iterating over the pages?
- Increase max page size? This feature proposal already exists at https://gitlab.com/gitlab-org/gitlab-ce/issues/28675 so let's leave that for that issue.
Potentially the preferred option by the customer?
- Add an option to get an entire tree via a single call. There isn't a ton of information returned for each entry in a tree on this API so maybe it would be acceptable to have an option to get all entries in one go?
The customer noted that they get an unbounded dataset from the Compare API so why would this be different?
Intended users
Unknown. This customer's user in this case is security. They have a compliance tool that periodically checks repos for certain compliance requirements.