// Copyright 2026 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package stack import ( stdctx "context" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" "gitea.dev/tea/modules/print" "gitea.dev/tea/modules/task" "github.com/urfave/cli/v3" ) var stackFieldsFlag = flags.FieldsFlag(print.PullStackFields, []string{ "id", "title", "base", "state", "entries", }) // CmdStackList represents a sub command to list pull request stacks var CmdStackList = cli.Command{ Name: "list", Aliases: []string{"ls"}, Usage: "List pull request stacks of the repository", Description: "List pull request stacks of the repository", ArgsUsage: " ", // command does not accept arguments Action: RunStackList, Flags: append([]cli.Flag{stackFieldsFlag}, flags.AllDefaultFlags...), } // RunStackList lists pull request stacks of the repository func RunStackList(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err } if err := ctx.Ensure(context.CtxRequirement{RemoteRepo: true}); err != nil { return err } stacks, err := task.ListPullStacks(requestCtx, ctx.Login, ctx.Owner, ctx.Repo) if err != nil { return err } fields, err := stackFieldsFlag.GetValues(cmd) if err != nil { return err } return print.PullStacksList(stacks, ctx.Output, fields) }