Github Pull Request API与Web工作流程不同

时间:2016-10-14 22:42:37

标签: git github

我正在尝试使用Github API为上游 repo创建拉取请求

https://developer.github.com/v3/pulls/#create-a-pull-request

API具有以下感兴趣的参数。

head - 实现更改的分支的名称。对于同一网络中的跨存储库拉取请求,名称空间主管与这样的用户:username:branch。

base - 要将更改拉入的分支的名称。这应该是当前存储库中的现有分支。您无法向请求合并到另一个存储库的基础的存储库提交拉取请求。

此模型假设在使用API​​时,我将成为上游 repo,我可以合并来自 fork:branch

的更改

这与我使用网络应用时的工作方式相反。我可以从我的分支向上游 repo提交 Pull Request ,表示为(base-fork,base)。

在我看来,如果没有访问上游 repo,使用API​​,我就无法创建针对它的pull-request。使用github api的人可以证实这一点吗?

1 个答案:

答案 0 :(得分:1)

您不需要访问上游存储库就可以提交针对它的拉取请求,就像您在发送时不需要访问某人的电子邮件帐户一样发给他们的电子邮件。使用您自己的凭据进行身份验证,但针对其他用户的回购发布请求。

  

这与我使用网络应用时的工作方式相反。我可以提交   从我的分支到上游仓库的拉取请求,表示   as(base-fork,base)。

我无法看到API方法与网络应用流程的不同之处。当您通过网络应用程序提交拉取请求时,拉取请求会被记录并显示在base-fork仓库中(您可能无权访问)。 web-app中的 base-fork 对应于您将发布create-pull-request API请求的存储库。

根据the web-app documentation

  

在考虑分支时,请记住基本分支   应该应用 更改 head branch 包含内容   你想申请。

这完全符合API请求的 base head 参数的含义。