Support order param for GET /projects/:id/repository/commits
Problem to solve
Some systems have a need to be able to retrieve the ancestry of a commit to be able to associate it with other assets and resources. Moreover, they may need to specify the order of the parent commits returned. An example provided by a customer is that they wish to mimic Git's native rev-list
command with support for the --topo-order
flag.
It is currently possible to retrieve the ancestry of a commit with GET /projects/:id/repository/commits
. But it is not possible to specify any order other than the default timestamp order.
Intended users
Further details
Note that this issue originally proposed a new API endpoint for rev-list and has been rewritten to focus on an MVC adding an order
param to an existing endpoint.
Proposal
We will extend the List Repository Commits endpoint to include a new order
param feature that will support the ordering functionality of rev-list.
We would like to start with an MVC to support order=topo
, which mimics the behavior of the --topo-order
flag in the git rev-list
command.
If no order
param is provided or an invalid value is passed, we will continue to default to reverse chronological order.
Update The implementation is using git log --topo-order
on the Gitaly side as described in #35671 (comment 280046100)
Permissions and Security
Documentation
This new functionality should be documented on the Commits API resource page, including a list of attributes and an example response.
Testing
What does success look like, and how can we measure that?
What is the type of buyer?
Links / references
This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.