spr icon indicating copy to clipboard operation
spr copied to clipboard

`spr land` in a repo with protected main branch?

Open leebyron opened this issue 2 years ago • 4 comments

Trying spr in a project with a protected main branch that requires PRs results in spr land failing.

Any thoughts on how to circumvent this restriction?

leebyron avatar Jul 06 '22 17:07 leebyron

I'm not sure I understand. Can you provide more details and/or copy-paste the error message? We have branch protection on as well and require PRs, and have no problems landing with spr.

sven-of-cord avatar Jul 12 '22 14:07 sven-of-cord

This could be some other esoteric issue with Github.

When attempting to spr land, it fails printing "Merge attempt failed. Changes must be made through a pull request".

Of course, the branch up on Github is frontend by a pull request. Once spr failed to merge this from the command line I tried merging from Github's web UI by pressing the "Merge" button, I got the same exact error within the UI:

Screen Shot 2022-07-06 at 1 02 44 PM

I ended up having to temporarily disable branch protection to land this.

Since this is happening also on Github, it may be a Github specific issue. However, is there anything about how spr does the branch set up or pull requests creation that might be non-traditional to cause Github to be confused about it's state as a valid PR?

leebyron avatar Jul 12 '22 18:07 leebyron

I am puzzled and intrigued.

This is the branch protection rule for the master branch in this repository: spr master branch protection rules There are no branch protection rules for any other branches in this repository. With this configuration, I have no problems using spr land for merging.

I'm wondering if your configuration is stricter in some way.

Does this problem occur with single PRs (those that are created targeting your main branch), or PRs that are based on other unlanded changes (those for which spr creates a synthetic base branch). Or both?

sven-of-cord avatar Jul 13 '22 07:07 sven-of-cord

My branch protection is actually less strict (for now). Our primary branch is main rather than master but otherwise I see no significant differences here.

Screen Shot 2022-07-13 at 1 13 57 PM

Does this problem occur with single PRs (those that are created targeting your main branch), or PRs that are based on other unlanded changes (those for which spr creates a synthetic base branch). Or both?

This particular case was the first in a stack, so was not based on unlanded changes. I have not yet tested other scenarios in this particular repo yet

leebyron avatar Jul 13 '22 20:07 leebyron

Seeing the same issue here with branch protection:

Screen Shot 2022-09-15 at 8 41 01 AM Screen Shot 2022-09-15 at 8 41 30 AM

It is the first of two stacked PRs, we have branch protection on master

tstirrat avatar Sep 15 '22 15:09 tstirrat

This is certainly a github bug but if I update the base branch in their UI to be master (even for the first PR in a stack that should already be master) spr land then works.

rockwotj avatar Sep 15 '22 17:09 rockwotj