// Copyright 2023 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package repo import ( "net/http" actions_model "code.gitea.io/gitea/models/actions" "code.gitea.io/gitea/models/db" api "code.gitea.io/gitea/modules/structs" "code.gitea.io/gitea/routers/api/v1/utils" "code.gitea.io/gitea/services/context" "code.gitea.io/gitea/services/convert" ) // ListActionTasks list all the actions of a repository func ListActionTasks(ctx *context.APIContext) { // swagger:operation GET /repos/{owner}/{repo}/actions/tasks repository ListActionTasks // --- // summary: List a repository's action tasks // produces: // - application/json // parameters: // - name: owner // in: path // description: owner of the repo // type: string // required: true // - name: repo // in: path // description: name of the repo // type: string // required: true // - name: page // in: query // description: page number of results to return (1-based) // type: integer // - name: limit // in: query // description: page size of results, default maximum page size is 50 // type: integer // responses: // "200": // "$ref": "#/responses/TasksList" // "400": // "$ref": "#/responses/error" // "403": // "$ref": "#/responses/forbidden" // "404": // "$ref": "#/responses/notFound" // "409": // "$ref": "#/responses/conflict" // "422": // "$ref": "#/responses/validationError" tasks, total, err := db.FindAndCount[actions_model.ActionTask](ctx, &actions_model.FindTaskOptions{ ListOptions: utils.GetListOptions(ctx), RepoID: ctx.Repo.Repository.ID, }) if err != nil { ctx.Error(http.StatusInternalServerError, "ListActionTasks", err) return } res := new(api.ActionTaskResponse) res.TotalCount = total res.Entries = make([]*api.ActionTask, len(tasks)) for i := range tasks { convertedTask, err := convert.ToActionTask(ctx, tasks[i]) if err != nil { ctx.Error(http.StatusInternalServerError, "ToActionTask", err) return } res.Entries[i] = convertedTask } ctx.JSON(http.StatusOK, &res) }