You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
'gh pr create' fails if skipping pushing with "GraphQL error: Head sha can't be blank, Base sha can't be blank, No commits between master and <branch>, Head ref must be a branch" #2691
Under some circumstances (not sure exactly why, see below), if I choose to skip pushing the current branch, PR creation fails with the following error:
GraphQL error: Head sha can't be blank, Base sha can't be blank, No commits between master and , Head ref must be a branch"
This is on 1.4.0 but also happened on 1.3.1.
Steps to reproduce the behavior
I think this should reproduce the problem. I'm pretty sure the bug is linked to the upstream configuration for the current branch :
Add some commits, and push to your fork : git push origin HEAD
Create the PR with gh: gh pr create
Choose "Skip pushing the branch" when asked where to push. I already pushed it myself, and I don't want gh to mess with my upstream configuration (i.e. I want to avoid gh doing git branch --set-upstream-to=origin/$(git branch --show-current) or git push -u origin $(git branch --show-current)), a behaviour which can't be disabled at the moment).
Enter title
Edit body
Submit
Experience error: pull request create failed: GraphQL error: Head sha can't be blank, Base sha can't be blank, No commits between master and my-topic, Head ref must be a branch
Expected vs actual behavior
I expected the PR creation to succeed. The GraphQL error seems to imply that gh is making a incorrect API request because (I assume) it can't correctly compute the required arguments.
Logs
## Git state before attempting PR creation# upstream branch is upstream/master
$ git rev-parse --symbolic-full-name @{upstream}
refs/remotes/upstream/master
# current branch is one commit ahead of its upstream
$ git log --oneline --decorate @{upstream}..HEAD
494173a586 (HEAD -> fix-linkgit-git1, origin/fix-linkgit-git1) git.txt: fix typos in'linkgit' macro invocation
# current branch is already pushed to my fork
$ git log --oneline --decorate origin/$(git branch --show-current)..HEAD
# empty# configured remote for 'gh' is 'ggg', which I do not have push access to:
$ git config --get-regexp 'remote.*.gh-resolved'
remote.ggg.gh-resolved base
# Try creating the PR:
$ gh pr create
? Where should we push the 'fix-linkgit-git1' branch? Skip pushing the branch
Creating pull request forfix-linkgit-git1 into masterin gitgitgadget/git
? Title Fix typo in'linkgit' macro invocation
? Body <Received>? What's next? SubmitX operation failed. To restore: gh pr create --recover /var/folders/lr/r6n2057j0dzd4gdb614fp0740000gp/T/gh303112606.jsonpull request create failed: GraphQL error: Head sha can't be blank, Base sha can't be blank, No commits between master and fix-linkgit-git1, Head ref must be a branch
Another thing I noticed while debugging this: If I choose to open the PR against my own fork (-R phil-blain/git), it works., even if I do not skip pushing the branch.
Describe the bug
Under some circumstances (not sure exactly why, see below), if I choose to skip pushing the current branch, PR creation fails with the following error:
This is on 1.4.0 but also happened on 1.3.1.
Steps to reproduce the behavior
I think this should reproduce the problem. I'm pretty sure the bug is linked to the upstream configuration for the current branch :
git checkout -b my-topic upstream/mastergit push origin HEADgh:gh pr createghto mess with my upstream configuration (i.e. I want to avoidghdoinggit branch --set-upstream-to=origin/$(git branch --show-current)orgit push -u origin $(git branch --show-current)), a behaviour which can't be disabled at the moment).pull request create failed: GraphQL error: Head sha can't be blank, Base sha can't be blank, No commits between master and my-topic, Head ref must be a branchExpected vs actual behavior
I expected the PR creation to succeed. The GraphQL error seems to imply that
ghis making a incorrect API request because (I assume) it can't correctly compute the required arguments.Logs
Another thing I noticed while debugging this: If I choose to open the PR against my own fork (
-R phil-blain/git), it works., even if I do not skip pushing the branch.