cli/pkg/cmd/issue/develop/develop.go
Chris Westra 711591c92b WIP
2022-08-26 15:25:19 -04:00

68 lines
1.8 KiB
Go

package develop
import (
"fmt"
"net/http"
"github.com/MakeNowJust/heredoc"
"github.com/cli/cli/v2/internal/browser"
"github.com/cli/cli/v2/internal/config"
"github.com/cli/cli/v2/internal/ghrepo"
"github.com/cli/cli/v2/pkg/cmdutil"
"github.com/cli/cli/v2/pkg/iostreams"
"github.com/spf13/cobra"
)
type DevelopOptions struct {
HttpClient func() (*http.Client, error)
Config func() (config.Config, error)
IO *iostreams.IOStreams
BaseRepo func() (ghrepo.Interface, error)
Browser browser.Browser
IssueRepo string
Name string
BaseBranch string
Checkout bool
}
func NewCmdDevelop(f *cmdutil.Factory, runF func(*DevelopOptions) error) *cobra.Command {
opts := &DevelopOptions{
IO: f.IOStreams,
HttpClient: f.HttpClient,
Config: f.Config,
Browser: f.Browser,
BaseRepo: f.BaseRepo,
}
cmd := &cobra.Command{
Use: "develop",
Short: "Manage branches for an issue",
Example: heredoc.Doc(`
$ gh issue develop --list 123 # list branches for issue 123
$ gh issue develop --issue-repo "github/cli" 123 list branches for issue 123 in repo "github/cli"
$ gh issue develop 123 --name "my-branch" --head main
`),
Args: cmdutil.NoArgsQuoteReminder,
RunE: func(cmd *cobra.Command, args []string) error {
if runF != nil {
return runF(opts)
}
return developRun(opts)
},
}
fl := cmd.Flags()
fl.StringVarP(&opts.Name, "name", "n", "", "Name of the branch to create")
fl.StringVarP(&opts.BaseBranch, "base-branch", "b", "", "Name of the base branch")
fl.StringVarP(&opts.IssueRepo, "issue-repo", "i", "", "Name of the issue's repository")
return cmd
}
func developRun(opts *DevelopOptions) (err error) {
// httpClient, err := opts.HttpClient()
// if err != nil {
// return err
// }
fmt.Fprintf(opts.IO.ErrOut, "hello world")
return
}