'How to create a github pull request from a forked repository back to the original repository using the github API?

In git/github I want to propose a change to a single file.

To do so, I

  • fork the repository
  • clone the repository locally
  • make the changes and the commit on a new feature branch
  • push the feature branch to my forked repo
  • create and merge a pull request to merge the changes from the feature branch to master

Now how can I programatically (via API) create a new pull request to merge the changes I have put in the forked repo to the original repo? How to do that?

The documentation only seems to handle the case when it is the same repository.



Solution 1:[1]

The documentation can be confusing. The following request will create a new pull request on FORKOWNER/THEREPO to merge FORKER:newbranch into FORKOWNER:main:

curl -X POST -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/repos/FORKOWNER/THEREPO/pulls \
  -d '{"title":"XYZ", "body":"ABC", "head":"FORKER:newbranch", "base":"main"}'

This can also be done with the gh api command of the GitHub CLI:

gh api --method POST -H "Accept: application/vnd.github.v3+json" \
  repos/FORKOWNER/THEREPO/pulls \
  -f title='XYZ' -f body='ABC' -f head='FORKER:newbranch' -f base='main'

Or directly with the gh pr create command of the GitHub CLI:

gh pr create --repo FORKOWNER/THEREPO \
  --title "XYZ" --body "ABC" --head FORKER:newbranch --base main

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Matt