mirror of
https://github.com/go-gitea/gitea.git
synced 2026-10-03 09:58:37 +09:00
Backport #39508 by @perfectra1n Commit status list orders only by `created_unix`/`updated_unix`, which have 1-second resolution while CI often posts many statuses per second. With LIMIT/OFFSET paging, databases (e.g. PostgreSQL using a Sort plan) may order tied rows differently per page, so `GET /repos/{owner}/{repo}/commits/{ref}/statuses` returns some statuses twice and never returns others. This became visible after https://github.com/go-gitea/gitea/pull/36521 made requests without `page` paginated. Clients like Renovate that page until `X-Total-Count` can miss a context's newest status and see a stale `pending`, blocking automerge. Fix: add `index` (unique per commit) as a tiebreaker to the timestamp-based orders. Co-authored-by: Jon Fuller <jonfuller2012@gmail.com> Co-authored-by: silverwind <me@silverwind.io>