我不确定,但是我对创建带有“问题4”或标题中的内容的github pull请求记忆犹豫,并且它自动将其自身附加到我提交该项目的项目4中。我最近再次尝试过,但没有成功-而是创造了一个全新的问题。我在新的请求请求页面上没有看到任何选项,例如“附加到发布”,在问题页面上没有看到“打开新的请求请求”。有什么方法可以帮助项目所有者保持“问题”页面的清洁度并避免重复?
编辑:澄清一下,我知道创建请求请求总是会创建一个新问题。我想改为将拉取请求附加到现有问题。
我不确定,但是我对创建带有“问题4”或标题中的内容的github pull请求记忆犹豫,并且它自动将其自身附加到我提交该项目的项目4中。我最近再次尝试过,但没有成功-而是创造了一个全新的问题。我在新的请求请求页面上没有看到任何选项,例如“附加到发布”,在问题页面上没有看到“打开新的请求请求”。有什么方法可以帮助项目所有者保持“问题”页面的清洁度并避免重复?
编辑:澄清一下,我知道创建请求请求总是会创建一个新问题。我想改为将拉取请求附加到现有问题。
Answers:
“ hub”项目可以做到这一点:
https://github.com/defunkt/hub
在您要从中发送拉取请求的存储库和分支中:
$ hub pull-request -i 4
这使用GitHub API,并将对当前分支的拉取请求附加到现有问题编号4。
编辑: @atomicules的评论:通过@MichaelMior扩展答案的完整示例是:
$ hub pull-request -i 4 -b USERNAME_OF_UPSTREAM_OWNER:UPSTREAM_BRANCH -h YOUR_USERNAME:YOUR_BRANCH URL_TO_ISSUE
brew install hub
安装自制软件
hub pull-request URL_TO_ISSUE
,然后它为我工作。我想知道-i ISSUE_NUMBER
问题是否在同一个存储库中(即不是叉子)是否有效?
hub pull-request -b USERNAME_OF_UPSTREAM_OWNER:UPSTREAM_BRANCH -h YOUR_USERNAME:YOUR_BRANCH URL_TO_ISSUE
假设您使用常规github方式进行分叉,则向现有的上游问题添加拉取请求很容易。
只需使用任何支持的关键字在您的提交消息中引用问题:
例如:“此提交修复了#116”
引用该问题的文本不需要出现在提交的主题行中。
将您的提交推送到您的github仓库中,拉取请求将自动添加到问题中。
注意:虽然不是必需的,但强烈建议您将将拉请求中包含的任何内容提交给特定于该问题的单独分支,因为该分支上的将来提交将追加到拉请求中(由github自动完成) )。因此,如果您不进行单独的分支,将其留在master上,然后继续开发,那么所有与master无关的提交都将附加到您的pull request中。
您可以使用Pull Request API从现有的Issue中创建Pull Request:
$ curl --user "smparkes" \
--request POST \
--data '{"issue": 15, "head": "smparkes:synchrony", "base": "master"}' \
https://api.github.com/repos/technoweenie/faraday/pulls
这将创建一个拉取请求:
technoweenie
在项目faraday
(https://api.github.com/repos/ technoweenie / 法拉第 /拉)synchrony
分支smparkes
'叉(‘头’:‘ smparkes:同步 ’)master
分支中technoweenie
的分支(“ base”:“ master ”)smparkes
(-用户“ smparkes ”)这个另一个答案说明了如何使用cURL(curl
)通过GitHub API从Issue创建一个Pull Request 。这是使用HTTPie的方法(http
)()产生了易于阅读和易于编辑的命令:
$ 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>
然后在出现提示时输入您的GitHub密码。
您已经使用用户名smparkes和密码hunter2登录了GitHub 。您看到了technoweenie的回购法拉第,想到了应该更改的内容,并为此回购发布了一个问题,第15期。后来,您发现没有其他人进行过建议的更改,并且您还有时间自己进行更改。您叉法拉第到自己的帐户,然后再编写的变化和一个分支命名为下他们推到你的叉子同步。您认为technoweenie应该将这些更改拉到主回购的分支。这是您要在这种情况下将先前的Issue转换为Pull Request的命令:
$ 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
现在,第15期是“拉取请求”。
如果您对github使用2-factor-auth,则需要在请求中提供authtoken作为标头:
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
您也可以使用Gub提交针对您的问题的请求请求。
它还可以帮助您使用适当的派生/请求样式。
编辑:10/5/2013
要使Gub提交问题#123的请求请求,您需要运行以下命令:
$ gub start 123
这将创建一个新的分支issue-123。解决问题后,请执行:
$ gub finish
瞧!
注意:我是Gub gem的作者。
您现在(2020年2月)可以在服务器上完成此操作,而不是在客户端(使用hub
,如Christian Oudard answer中的那样)进行操作。端(github.com)那样)。
请参阅“ 查看和链接问题以及从侧边栏提取请求 ”
现在,您可以通过相应页面中的侧边栏链接问题和请求。链接的合并请求合并后,此处建立的连接将自动关闭问题。
说明文件:
并且有一个具有该功能的搜索API。
在存储库中找到所有带有
linked:pr
搜索限定符的拉取请求引用的未解决问题。
同样,在存储库中找到所有缺少支持问题的拉取请求-linked:issue
。
如果启用了2FA,则可以将令牌与HTTPie一起使用:
http POST \
https://api.github.com/repos/<repo-owner>/<repo-name>/pulls \
issue=2 head=issue_2 base=master
"Authorization:token PUTAUTHTOKENHERE"
这将使用分支issue_2
将问题2转换为请求请求。