feat(pagination): add pagination to release list

This commit is contained in:
Sebastian Gumprich 2024-01-02 23:09:33 +00:00 committed by Gary Holtz
parent 98485c174e
commit 7340cf1e57
2 changed files with 17 additions and 2 deletions

View File

@ -22,12 +22,16 @@ func NewCmdReleaseList(f *cmdutils.Factory) *cobra.Command {
Short: `List releases in a repository`,
Long: ``,
Aliases: []string{"ls"},
Args: cobra.MaximumNArgs(3),
Args: cobra.ExactArgs(0),
RunE: func(cmd *cobra.Command, args []string) error {
factory = f
return listReleases(cmd, args)
},
}
releaseListCmd.Flags().IntP("page", "p", 1, "Page number.")
releaseListCmd.Flags().IntP("per-page", "P", 30, "Number of items to list per page.")
releaseListCmd.Flags().StringP("tag", "t", "", "Filter releases by tag <name>")
// deprecate in favour of the `release view` command
_ = releaseListCmd.Flags().MarkDeprecated("tag", "use `glab release view <tag>` instead")
@ -42,6 +46,11 @@ func NewCmdReleaseList(f *cmdutils.Factory) *cobra.Command {
func listReleases(cmd *cobra.Command, args []string) error {
l := &gitlab.ListReleasesOptions{}
page, _ := cmd.Flags().GetInt("page")
l.Page = page
perPage, _ := cmd.Flags().GetInt("per-page")
l.PerPage = perPage
tag, err := cmd.Flags().GetString("tag")
if err != nil {
return err
@ -75,7 +84,6 @@ func listReleases(cmd *cobra.Command, args []string) error {
fmt.Fprintln(factory.IO.StdOut, releaseutils.DisplayRelease(factory.IO, release, repo))
} else {
l.PerPage = 30
releases, err := api.ListReleases(apiClient, repo.FullName(), l)
if err != nil {

View File

@ -23,6 +23,13 @@ glab release list [flags]
ls
```
## Options
```plaintext
-p, --page int Page number. (default 1)
-P, --per-page int Number of items to list per page. (default 30)
```
## Options inherited from parent commands
```plaintext