diff --git a/routers/api/packages/pypi/pypi.go b/routers/api/packages/pypi/pypi.go index 609c63dc64..2f71801a8f 100644 --- a/routers/api/packages/pypi/pypi.go +++ b/routers/api/packages/pypi/pypi.go @@ -8,6 +8,7 @@ import ( "io" "net/http" "regexp" + "sort" "strings" packages_model "code.gitea.io/gitea/models/packages" @@ -62,6 +63,11 @@ func PackageMetadata(ctx *context.Context) { return } + // sort package descriptors by version to mimic PyPI format + sort.Slice(pds, func(i, j int) bool { + return strings.Compare(pds[i].Version.Version, pds[j].Version.Version) < 0 + }) + ctx.Data["RegistryURL"] = setting.AppURL + "api/packages/" + ctx.Package.Owner.Name + "/pypi" ctx.Data["PackageDescriptor"] = pds[0] ctx.Data["PackageDescriptors"] = pds