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?
编辑:澄清一下,我知道创建拉请求总是会产生一个新问题。我想把拉请求附加到一个现有的问题上。
你可以用Pull Request API从一个已经存在的问题中创建一个Pull Request:
$ curl --user "smparkes" \
--request POST \
--data '{"issue": 15, "head": "smparkes:synchrony", "base": "master"}' \
https://api.github.com/repos/technoweenie/faraday/pulls
这将创建一个拉请求:
询问Faraday project的technoweenie (https://api.github.com/repos/technoweenie/faraday/pulls)
从smparkes的fork中的同步分支中提取("head": "smparkes:synchrony")
到technoweenie's fork中的master分支("base": "master")
并将拉请求附加到issue 15(“issue”:15)
与拉请求作者smparkes(——user "smparkes")
你会被提示输入你的GitHub密码
你现在(2020年2月)可以在服务器端(github.com)做,而不是在客户端(使用hub,如Christian Oudard的回答)做。
参见“查看和链接问题,并从侧栏提取请求”
您现在可以通过各自页面中的侧边栏链接问题和提取请求。在这里建立的连接将在合并链接的pull请求后自动关闭问题。
文档:
有一个带有这个功能的搜索API。
使用linked:pr搜索限定符查找存储库中具有关闭拉请求引用的所有开放问题。
类似地,使用-linked:issue定位存储库中缺少支持问题的所有拉请求。
Ismoh在评论中提到了讨论:
GitHub Action:拉请求“开发”对象/数据,又名链接问题
Ismosh的Marketplace操作用于查找拉请求的链接问题。
- name: Find linked issues
id: find-linked-issues
uses: Ismoh-Games/find-linked-issues@v0.0.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
repository: ${{ github.repository }} # optional
pull-request-number: ${{ github.event.pull_request.number }} # optional
copy-issues-labels: true # optional
向现有的上游问题添加拉请求很容易,假设您使用正常的github方法进行分叉。
使用任何支持的关键字在提交消息中引用问题:
关闭
关闭
关闭
修复
修复
固定
解决
解决了
解决
例如:"this commit fixes #116"
引用该问题的文本不需要出现在提交的主题行中。
推送你的提交到你的github回购和拉请求将自动追加到问题。
注意:虽然这不是必需的,但强烈建议您将任何作为拉取请求一部分的内容提交到特定于该问题的单独分支,因为在该分支上的未来提交将被追加到拉取请求(由github自动执行)。所以,如果你没有创建一个独立的分支,把它留在master上,然后继续开发,那么所有你对master不相关的提交都会被追加到你的pull request中。