Merge branch 'trunk' into eugene/gh-attestation-case-insensitivity
This commit is contained in:
commit
12715fdcc6
6 changed files with 93 additions and 22 deletions
|
|
@ -46,6 +46,7 @@ func NewCmdEdit(f *cmdutil.Factory, runF func(*EditOptions) error) *cobra.Comman
|
|||
}
|
||||
|
||||
var bodyFile string
|
||||
var removeMilestone bool
|
||||
|
||||
cmd := &cobra.Command{
|
||||
Use: "edit {<numbers> | <urls>}",
|
||||
|
|
@ -62,6 +63,7 @@ func NewCmdEdit(f *cmdutil.Factory, runF func(*EditOptions) error) *cobra.Comman
|
|||
$ gh issue edit 23 --add-assignee "@me" --remove-assignee monalisa,hubot
|
||||
$ gh issue edit 23 --add-project "Roadmap" --remove-project v1,v2
|
||||
$ gh issue edit 23 --milestone "Version 1"
|
||||
$ gh issue edit 23 --remove-milestone
|
||||
$ gh issue edit 23 --body-file body.txt
|
||||
$ gh issue edit 23 34 --add-label "help wanted"
|
||||
`),
|
||||
|
|
@ -95,6 +97,14 @@ func NewCmdEdit(f *cmdutil.Factory, runF func(*EditOptions) error) *cobra.Comman
|
|||
}
|
||||
}
|
||||
|
||||
if err := cmdutil.MutuallyExclusive(
|
||||
"specify only one of `--milestone` or `--remove-milestone`",
|
||||
flags.Changed("milestone"),
|
||||
removeMilestone,
|
||||
); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if flags.Changed("title") {
|
||||
opts.Editable.Title.Edited = true
|
||||
}
|
||||
|
|
@ -107,8 +117,13 @@ func NewCmdEdit(f *cmdutil.Factory, runF func(*EditOptions) error) *cobra.Comman
|
|||
if flags.Changed("add-project") || flags.Changed("remove-project") {
|
||||
opts.Editable.Projects.Edited = true
|
||||
}
|
||||
if flags.Changed("milestone") {
|
||||
if flags.Changed("milestone") || removeMilestone {
|
||||
opts.Editable.Milestone.Edited = true
|
||||
|
||||
// Note that when `--remove-milestone` is provided, the value of
|
||||
// `opts.Editable.Milestone.Value` will automatically be empty,
|
||||
// which results in milestone association removal. For reference,
|
||||
// see the `Editable.MilestoneId` method.
|
||||
}
|
||||
|
||||
if !opts.Editable.Dirty() {
|
||||
|
|
@ -141,6 +156,7 @@ func NewCmdEdit(f *cmdutil.Factory, runF func(*EditOptions) error) *cobra.Comman
|
|||
cmd.Flags().StringSliceVar(&opts.Editable.Projects.Add, "add-project", nil, "Add the issue to projects by `name`")
|
||||
cmd.Flags().StringSliceVar(&opts.Editable.Projects.Remove, "remove-project", nil, "Remove the issue from projects by `name`")
|
||||
cmd.Flags().StringVarP(&opts.Editable.Milestone.Value, "milestone", "m", "", "Edit the milestone the issue belongs to by `name`")
|
||||
cmd.Flags().BoolVar(&removeMilestone, "remove-milestone", false, "Remove the milestone association from the issue")
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
|
|
|||
|
|
@ -104,6 +104,11 @@ func TestNewCmdEdit(t *testing.T) {
|
|||
},
|
||||
wantsErr: false,
|
||||
},
|
||||
{
|
||||
name: "both body and body-file flags",
|
||||
input: "23 --body foo --body-file bar",
|
||||
wantsErr: true,
|
||||
},
|
||||
{
|
||||
name: "add-assignee flag",
|
||||
input: "23 --add-assignee monalisa,hubot",
|
||||
|
|
@ -206,6 +211,25 @@ func TestNewCmdEdit(t *testing.T) {
|
|||
},
|
||||
wantsErr: false,
|
||||
},
|
||||
{
|
||||
name: "remove-milestone flag",
|
||||
input: "23 --remove-milestone",
|
||||
output: EditOptions{
|
||||
SelectorArgs: []string{"23"},
|
||||
Editable: prShared.Editable{
|
||||
Milestone: prShared.EditableString{
|
||||
Value: "",
|
||||
Edited: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
wantsErr: false,
|
||||
},
|
||||
{
|
||||
name: "both milestone and remove-milestone flags",
|
||||
input: "23 --milestone foo --remove-milestone",
|
||||
wantsErr: true,
|
||||
},
|
||||
{
|
||||
name: "add label to multiple issues",
|
||||
input: "23 34 --add-label bug",
|
||||
|
|
@ -221,17 +245,8 @@ func TestNewCmdEdit(t *testing.T) {
|
|||
wantsErr: false,
|
||||
},
|
||||
{
|
||||
name: "interactive multiple issues",
|
||||
input: "23 34",
|
||||
output: EditOptions{
|
||||
SelectorArgs: []string{"23", "34"},
|
||||
Editable: prShared.Editable{
|
||||
Labels: prShared.EditableSlice{
|
||||
Add: []string{"bug"},
|
||||
Edited: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
name: "interactive multiple issues",
|
||||
input: "23 34",
|
||||
wantsErr: true,
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ func NewCmdEdit(f *cmdutil.Factory, runF func(*EditOptions) error) *cobra.Comman
|
|||
}
|
||||
|
||||
var bodyFile string
|
||||
var removeMilestone bool
|
||||
|
||||
cmd := &cobra.Command{
|
||||
Use: "edit [<number> | <url> | <branch>]",
|
||||
|
|
@ -63,6 +64,7 @@ func NewCmdEdit(f *cmdutil.Factory, runF func(*EditOptions) error) *cobra.Comman
|
|||
$ gh pr edit 23 --add-assignee "@me" --remove-assignee monalisa,hubot
|
||||
$ gh pr edit 23 --add-project "Roadmap" --remove-project v1,v2
|
||||
$ gh pr edit 23 --milestone "Version 1"
|
||||
$ gh pr edit 23 --remove-milestone
|
||||
`),
|
||||
Args: cobra.MaximumNArgs(1),
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
|
|
@ -95,6 +97,14 @@ func NewCmdEdit(f *cmdutil.Factory, runF func(*EditOptions) error) *cobra.Comman
|
|||
}
|
||||
}
|
||||
|
||||
if err := cmdutil.MutuallyExclusive(
|
||||
"specify only one of `--milestone` or `--remove-milestone`",
|
||||
flags.Changed("milestone"),
|
||||
removeMilestone,
|
||||
); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if flags.Changed("title") {
|
||||
opts.Editable.Title.Edited = true
|
||||
}
|
||||
|
|
@ -116,8 +126,13 @@ func NewCmdEdit(f *cmdutil.Factory, runF func(*EditOptions) error) *cobra.Comman
|
|||
if flags.Changed("add-project") || flags.Changed("remove-project") {
|
||||
opts.Editable.Projects.Edited = true
|
||||
}
|
||||
if flags.Changed("milestone") {
|
||||
if flags.Changed("milestone") || removeMilestone {
|
||||
opts.Editable.Milestone.Edited = true
|
||||
|
||||
// Note that when `--remove-milestone` is provided, the value of
|
||||
// `opts.Editable.Milestone.Value` will automatically be empty,
|
||||
// which results in milestone association removal. For reference,
|
||||
// see the `Editable.MilestoneId` method.
|
||||
}
|
||||
|
||||
if !opts.Editable.Dirty() {
|
||||
|
|
@ -149,6 +164,7 @@ func NewCmdEdit(f *cmdutil.Factory, runF func(*EditOptions) error) *cobra.Comman
|
|||
cmd.Flags().StringSliceVar(&opts.Editable.Projects.Add, "add-project", nil, "Add the pull request to projects by `name`")
|
||||
cmd.Flags().StringSliceVar(&opts.Editable.Projects.Remove, "remove-project", nil, "Remove the pull request from projects by `name`")
|
||||
cmd.Flags().StringVarP(&opts.Editable.Milestone.Value, "milestone", "m", "", "Edit the milestone the pull request belongs to by `name`")
|
||||
cmd.Flags().BoolVar(&removeMilestone, "remove-milestone", false, "Remove the milestone association from the pull request")
|
||||
|
||||
_ = cmdutil.RegisterBranchCompletionFlags(f.GitClient, cmd, "base")
|
||||
|
||||
|
|
|
|||
|
|
@ -112,6 +112,11 @@ func TestNewCmdEdit(t *testing.T) {
|
|||
},
|
||||
wantsErr: false,
|
||||
},
|
||||
{
|
||||
name: "both body and body-file flags",
|
||||
input: "23 --body foo --body-file bar",
|
||||
wantsErr: true,
|
||||
},
|
||||
{
|
||||
name: "base flag",
|
||||
input: "23 --base base-branch-name",
|
||||
|
|
@ -256,6 +261,25 @@ func TestNewCmdEdit(t *testing.T) {
|
|||
},
|
||||
wantsErr: false,
|
||||
},
|
||||
{
|
||||
name: "remove-milestone flag",
|
||||
input: "23 --remove-milestone",
|
||||
output: EditOptions{
|
||||
SelectorArg: "23",
|
||||
Editable: shared.Editable{
|
||||
Milestone: shared.EditableString{
|
||||
Value: "",
|
||||
Edited: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
wantsErr: false,
|
||||
},
|
||||
{
|
||||
name: "both milestone and remove-milestone flags",
|
||||
input: "23 --milestone foo --remove-milestone",
|
||||
wantsErr: true,
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue