How do you attach a new pull request to an existin

2019-01-12 13:25发布

I'm not sure, but I have a vague memory of creating a github pull request with "Issue 4" or something in the title, and it automatically attached itself to Issue 4 in the project that I was submitting it to. I tried it again recently and it didn't work -- it just created a brand new issue instead. I don't see any options like "Attach to issue" on the new pull request page, nor "Open a new pull request for this issue" on the issue page. Is there any way to do this, to help project owners keep their Issues page clean and avoid duplication?

Edit: To clarify, I know that creating a pull request always creates a new issue. I would like to instead attach the pull request to an existing issue.

9条回答
兄弟一词,经得起流年.
2楼-- · 2019-01-12 13:30

Using the git-hub tool, you could do this with:

$> git hub pull attach 123

This would convert issue #123 into pull request #123, thus maintaining all discussion about the issue in a single location.

查看更多
何必那么认真
3楼-- · 2019-01-12 13:36

in case you use 2-factor-auth with github you'll need to provide the authtoken as header in the request:

curl -u "<your_username>:<your_pw>" \
     --header 'X-GitHub-OTP: <your_authtoken>' \
     --request POST \
     --data '{"issue":"<issue_nr>", "head":"<your_username>:<your_forks_branchname>", "base":"<upstream_branch>"}' \
     https://api.github.com/repos/<upstream_user>/<upstream_repo>/pulls
查看更多
乱世女痞
4楼-- · 2019-01-12 13:36

You may also use Gub to submit pull requests for your issue.

It also helps you use a proper fork/pull-request style.

Edit: 10/5/2013

To get Gub to submit pull-request for issue #123, you need to run the following:

$ gub start 123

This will create a new branch issue-123. Once you're done working on the issue, execute:

$ gub finish

Voila!

Note: I am the author of Gub gem.

查看更多
乱世女痞
5楼-- · 2019-01-12 13:37

You can create a Pull Request from an existing Issue with the Pull Request API:

$ curl --user "smparkes" \
       --request POST \
       --data '{"issue": "15", "head": "smparkes:synchrony", "base": "master"}' \
       https://api.github.com/repos/technoweenie/faraday/pulls

This creates a pull request:

  • ask technoweenie at project faraday (https://api.github.com/repos/technoweenie/faraday/pulls)
  • to pull from the synchrony branch in smparkes' fork ("head": "smparkes:synchrony")
  • to the master branch in technoweenie's fork ("base": "master")
  • and attach the pull request to issue 15 ("issue": "15")
  • with the pull request author smparkes (--user "smparkes")
  • you will be prompted for your GitHub password
查看更多
虎瘦雄心在
6楼-- · 2019-01-12 13:37

Another possible tool is the Issue2Pr website which turns your issues into Pull Requests.

It's very simple and effective!

enter image description here

Resources:

查看更多
Melony?
7楼-- · 2019-01-12 13:44

This other answer explains how to use cURL (curl) to create a Pull Request from an Issue through the GitHub API. Here’s how to do it using HTTPie (http), which produces an easier-to-read and easier-to-edit command:

$ http --auth "<your-GitHub-username>" \
       POST \
       https://api.github.com/repos/<issue-repo-owner>/<issue-repo-name>/pulls \
       issue=<issue-number> head=<your-GitHub-username>:<your-fork-branch-name> base=<issue-repo-branch-name>

Then type your GitHub password when prompted.

Explained example

You have logged into GitHub with username smparkes and password hunter2. You saw technoweenie’s repo faraday, thought of something that should be changed, and made an Issue on that repo for it, Issue #15. Later, you find that nobody else has made your proposed change, and you also have some time to do it yourself. You fork faraday to your own account, then write your changes and push them to your fork under a branch named synchrony. You think technoweenie should pull those changes to the master branch of his repo. This is the command you would write to convert your previous Issue into a Pull Request for this situation:

$ http --auth "smparkes" \
       POST \
       https://api.github.com/repos/technoweenie/faraday/pulls \
       issue=15 head=smparkes:synchrony base=master
http: password for smparkes@api.github.com: hunter2

Now Issue #15 is a Pull Request.

查看更多
登录 后发表回答