commands/mr/delete/mr_delete.go (46 lines of code) (raw):

package delete import ( "fmt" "github.com/MakeNowJust/heredoc/v2" "gitlab.com/gitlab-org/cli/api" "gitlab.com/gitlab-org/cli/commands/cmdutils" "gitlab.com/gitlab-org/cli/commands/mr/mrutils" "github.com/spf13/cobra" ) func NewCmdDelete(f *cmdutils.Factory) *cobra.Command { mrDeleteCmd := &cobra.Command{ Use: "delete [<id> | <branch>]", Short: `Delete a merge request.`, Long: ``, Aliases: []string{"del"}, Example: heredoc.Doc(` $ glab mr delete 123 # Delete multiple merge requests by ID and branch name $ glab mr delete 123 branch-name 789 # Delete merge requests !1, !2, !3, !4, !5 $ glab mr delete 1,2,branch-related-to-mr-3,4,5 $ glab mr del 123 $ glab mr delete branch `), RunE: func(cmd *cobra.Command, args []string) error { c := f.IO.Color() apiClient, err := f.HttpClient() if err != nil { return err } mrs, repo, err := mrutils.MRsFromArgs(f, args, "any") if err != nil { return err } for _, mr := range mrs { fmt.Fprintf(f.IO.StdOut, "- Deleting merge request !%d.\n", mr.IID) if err = api.DeleteMR(apiClient, repo.FullName(), mr.IID); err != nil { return err } fmt.Fprintf(f.IO.StdOut, "%s Merge request !%d deleted.\n", c.RedCheck(), mr.IID) } return nil }, } return mrDeleteCmd }