commands/schedule/run/run.go (55 lines of code) (raw):

package run 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 NewCmdRun(f *cmdutils.Factory) *cobra.Command { opts := &RunOpts{ IO: f.IO, } scheduleRunCmd := &cobra.Command{ Use: "run <id>", Short: `Run the specified scheduled pipeline.`, Example: heredoc.Doc(` # Run a scheduled pipeline with ID 1 $ glab schedule run 1 > Started schedule with ID 1 `), 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 } opts.ScheduleId = int(id) if err != nil { return err } err = api.RunSchedule(apiClient, repo.FullName(), opts.ScheduleId) if err != nil { return err } fmt.Fprintln(opts.IO.StdOut, "Started schedule with ID", opts.ScheduleId) return nil }, } return scheduleRunCmd }