pr command scriptability improvements

This commit improves behavior and error handling for pr commands when
run unattached to a tty.

- error if pr create and no -t/-f
- error if pr create and -w
- machine readable pr list
- machine readable pr view
- various cleanup of informational messages
This commit is contained in:
vilmibm 2020-07-14 16:47:32 -05:00
parent e18776c227
commit 168bd33bc9
7 changed files with 679 additions and 38 deletions

View file

@ -205,12 +205,14 @@ func prCreate(cmd *cobra.Command, _ []string) error {
message = "\nCreating draft pull request for %s into %s in %s\n\n"
}
fmt.Fprintf(colorableErr(cmd), message,
utils.Cyan(headBranch),
utils.Cyan(baseBranch),
ghrepo.FullName(baseRepo))
if (title == "" || body == "") && defaultsErr != nil {
fmt.Fprintf(colorableErr(cmd), "%s warning: could not compute title or body defaults: %s\n", utils.Yellow("!"), defaultsErr)
if connectedToTerminal(cmd) {
fmt.Fprintf(colorableErr(cmd), message,
utils.Cyan(headBranch),
utils.Cyan(baseBranch),
ghrepo.FullName(baseRepo))
if (title == "" || body == "") && defaultsErr != nil {
fmt.Fprintf(colorableErr(cmd), "%s warning: could not compute title or body defaults: %s\n", utils.Yellow("!"), defaultsErr)
}
}
}
@ -223,7 +225,16 @@ func prCreate(cmd *cobra.Command, _ []string) error {
Milestones: milestoneTitles,
}
interactive := !(cmd.Flags().Changed("title") && cmd.Flags().Changed("body"))
if !connectedToTerminal(cmd) {
if isWeb {
return errors.New("--web unsupported when not attached to a tty")
}
if !cmd.Flags().Changed("title") && !autofill {
return errors.New("--title or --fill required when not attached to a tty")
}
}
interactive := connectedToTerminal(cmd) && !(cmd.Flags().Changed("title") && cmd.Flags().Changed("body"))
if !isWeb && !autofill && interactive {
var nonLegacyTemplateFiles []string