commands/schedule/delete/delete.go (55 lines of code) (raw):
package delete
import (
"fmt"
"strconv"
"gitlab.com/gitlab-org/cli/api"
"gitlab.com/gitlab-org/cli/commands/cmdutils"
"gitlab.com/gitlab-org/cli/pkg/iostreams"
"github.com/MakeNowJust/heredoc/v2"
"github.com/spf13/cobra"
)
type RunOpts struct {
ScheduleId int
IO *iostreams.IOStreams
}
func NewCmdDelete(f *cmdutils.Factory) *cobra.Command {
opts := &RunOpts{
IO: f.IO,
}
scheduleDeleteCmd := &cobra.Command{
Use: "delete <id> [flags]",
Short: `Delete the schedule with the specified ID.`,
Example: heredoc.Doc(`
# Delete a scheduled pipeline with ID 10
$ glab schedule delete 10
> Deleted schedule with ID 10
`),
Long: ``,
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
apiClient, err := f.HttpClient()
if err != nil {
return err
}
repo, err := f.BaseRepo()
if err != nil {
return err
}
id, err := strconv.ParseUint(args[0], 10, 64)
if err != nil {
return err
}
scheduleId := int(id)
if err != nil {
return err
}
err = api.DeleteSchedule(apiClient, scheduleId, repo.FullName())
if err != nil {
return err
}
fmt.Fprintln(opts.IO.StdOut, "Deleted schedule with ID", scheduleId)
return nil
},
}
return scheduleDeleteCmd
}