Merge pull request #10074 from cli/kw/cli-7011-fix-delete-branch-with-merge-queue-v2
`gh pr merge --delete-branch` exits with error when merge requested via merge queue
This commit is contained in:
commit
c35d725b0b
2 changed files with 31 additions and 1 deletions
|
|
@ -241,7 +241,14 @@ func (m *mergeContext) warnIfDiverged() {
|
||||||
// Check if the current state of the pull request allows for merging
|
// Check if the current state of the pull request allows for merging
|
||||||
func (m *mergeContext) canMerge() error {
|
func (m *mergeContext) canMerge() error {
|
||||||
if m.mergeQueueRequired {
|
if m.mergeQueueRequired {
|
||||||
// a pull request can always be added to the merge queue
|
// Requesting branch deletion on a PR with a merge queue
|
||||||
|
// policy is not allowed. Doing so can unexpectedly
|
||||||
|
// delete branches before merging, close the PR, and remove
|
||||||
|
// the PR from the merge queue.
|
||||||
|
if m.opts.DeleteBranch {
|
||||||
|
return fmt.Errorf("%s Cannot use `-d` or `--delete-branch` when merge queue enabled", m.cs.FailureIcon())
|
||||||
|
}
|
||||||
|
// Otherwise, a pull request can always be added to the merge queue
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -659,6 +659,29 @@ func TestPrMerge_deleteBranch(t *testing.T) {
|
||||||
`), output.Stderr())
|
`), output.Stderr())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPrMerge_deleteBranch_mergeQueue(t *testing.T) {
|
||||||
|
http := initFakeHTTP()
|
||||||
|
defer http.Verify(t)
|
||||||
|
|
||||||
|
shared.RunCommandFinder(
|
||||||
|
"",
|
||||||
|
&api.PullRequest{
|
||||||
|
ID: "PR_10",
|
||||||
|
Number: 10,
|
||||||
|
State: "OPEN",
|
||||||
|
Title: "Blueberries are a good fruit",
|
||||||
|
HeadRefName: "blueberries",
|
||||||
|
BaseRefName: "main",
|
||||||
|
MergeStateStatus: "CLEAN",
|
||||||
|
IsMergeQueueEnabled: true,
|
||||||
|
},
|
||||||
|
baseRepo("OWNER", "REPO", "main"),
|
||||||
|
)
|
||||||
|
|
||||||
|
_, err := runCommand(http, nil, "blueberries", true, `pr merge --merge --delete-branch`)
|
||||||
|
assert.Contains(t, err.Error(), "X Cannot use `-d` or `--delete-branch` when merge queue enabled")
|
||||||
|
}
|
||||||
|
|
||||||
func TestPrMerge_deleteBranch_nonDefault(t *testing.T) {
|
func TestPrMerge_deleteBranch_nonDefault(t *testing.T) {
|
||||||
http := initFakeHTTP()
|
http := initFakeHTTP()
|
||||||
defer http.Verify(t)
|
defer http.Verify(t)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue