Fix repo API listing stability (#12057)

Repo listings are paginated in the API now. Unfortunately, they are
ORDER BY updated_unix which only has second resolution. This means that
if you do a listing when multiple projects were created at the same time
you can unstable ordering. If that unstable ordering happens at a page
boundary you may fail to get a complete repo listing.

To make things worse sorting by updated_unix means that we may never get
a complete listing because udpated_unix can change independent of our
API calls.

Fix this by making the API repo listing order by id instead.
tokarchuk/v1.17
Clark Boylan 4 years ago committed by GitHub
parent 482ba937ed
commit 7e401fb026
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      routers/api/v1/user/repo.go

@ -22,6 +22,7 @@ func listUserRepos(ctx *context.APIContext, u *models.User, private bool) {
Actor: u, Actor: u,
Private: private, Private: private,
ListOptions: opts, ListOptions: opts,
OrderBy: "id ASC",
}) })
if err != nil { if err != nil {
ctx.Error(http.StatusInternalServerError, "GetUserRepositories", err) ctx.Error(http.StatusInternalServerError, "GetUserRepositories", err)

Loading…
Cancel
Save