MCPcopy
hub / github.com/cli/cli / NewCmdList

Function NewCmdList

pkg/cmd/release/list/list.go:32–65  ·  view source on GitHub ↗
(f *cmdutil.Factory, runF func(*ListOptions) error)

Source from the content-addressed store, hash-verified

30}
31
32func NewCmdList(f *cmdutil.Factory, runF func(*ListOptions) error) *cobra.Command {
33 opts := &ListOptions{
34 IO: f.IOStreams,
35 HttpClient: f.HttpClient,
36 }
37
38 cmd := &cobra.Command{
39 Use: "list",
40 Short: "List releases in a repository",
41 Aliases: []string{"ls"},
42 Args: cobra.NoArgs,
43 RunE: func(cmd *cobra.Command, args []string) error {
44 // support `-R, --repo` override
45 opts.BaseRepo = f.BaseRepo
46
47 if opts.LimitResults < 1 {
48 return cmdutil.FlagErrorf("invalid limit: %v", opts.LimitResults)
49 }
50
51 if runF != nil {
52 return runF(opts)
53 }
54 return listRun(opts)
55 },
56 }
57
58 cmd.Flags().IntVarP(&opts.LimitResults, "limit", "L", 30, "Maximum number of items to fetch")
59 cmd.Flags().BoolVar(&opts.ExcludeDrafts, "exclude-drafts", false, "Exclude draft releases")
60 cmd.Flags().BoolVar(&opts.ExcludePreReleases, "exclude-pre-releases", false, "Exclude pre-releases")
61 cmdutil.StringEnumFlag(cmd, &opts.Order, "order", "O", "desc", []string{"asc", "desc"}, "Order of releases returned")
62 cmdutil.AddJSONFlags(cmd, &opts.Exporter, releaseFields)
63
64 return cmd
65}
66
67func listRun(opts *ListOptions) error {
68 httpClient, err := opts.HttpClient()

Callers 1

Test_NewCmdListFunction · 0.70

Calls 4

FlagErrorfFunction · 0.92
StringEnumFlagFunction · 0.92
AddJSONFlagsFunction · 0.92
listRunFunction · 0.70

Tested by 1

Test_NewCmdListFunction · 0.56