loading up the forgejo repo on tangled to test page performance
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat(api): An `order_by` param for user.ListMyRepos

Add an optional `order_by` parameter to the `user.ListMyRepos`
handler (which handles the `/api/v1/user/repos` route), allowing a user
to sort repos by name (the default), id, or size.

The latter will be useful later for figuring out which repos use most
space, which repos eat most into a user's quota.

Signed-off-by: Gergely Nagy <forgejo@gergo.csillger.hu>

+28
+19
routers/api/v1/user/repo.go
··· 99 99 // in: query 100 100 // description: page size of results 101 101 // type: integer 102 + // - name: order_by 103 + // in: query 104 + // description: order the repositories by name (default), id, or size 105 + // type: string 102 106 // responses: 103 107 // "200": 104 108 // "$ref": "#/responses/RepositoryList" 109 + // "422": 110 + // "$ref": "#/responses/validationError" 105 111 106 112 opts := &repo_model.SearchRepoOptions{ 107 113 ListOptions: utils.GetListOptions(ctx), ··· 109 115 OwnerID: ctx.Doer.ID, 110 116 Private: ctx.IsSigned, 111 117 IncludeDescription: true, 118 + } 119 + orderBy := ctx.FormTrim("order_by") 120 + switch orderBy { 121 + case "name": 122 + opts.OrderBy = "name ASC" 123 + case "size": 124 + opts.OrderBy = "size DESC" 125 + case "id": 126 + opts.OrderBy = "id ASC" 127 + case "": 128 + default: 129 + ctx.Error(http.StatusUnprocessableEntity, "", "invalid order_by") 130 + return 112 131 } 113 132 114 133 var err error
+9
templates/swagger/v1_json.tmpl
··· 17529 17529 "description": "page size of results", 17530 17530 "name": "limit", 17531 17531 "in": "query" 17532 + }, 17533 + { 17534 + "type": "string", 17535 + "description": "order the repositories by name (default), id, or size", 17536 + "name": "order_by", 17537 + "in": "query" 17532 17538 } 17533 17539 ], 17534 17540 "responses": { 17535 17541 "200": { 17536 17542 "$ref": "#/responses/RepositoryList" 17543 + }, 17544 + "422": { 17545 + "$ref": "#/responses/validationError" 17537 17546 } 17538 17547 } 17539 17548 },