【问题标题】:Github Pull Request API Differs from the web workflowGithub Pull Request API 与 web 工作流不同
【发布时间】:2016-10-18 14:40:37
【问题描述】:

我正在尝试使用 Github API 针对 upstream 存储库创建拉取请求

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

API 有以下感兴趣的参数。

head - 实施更改的分支的名称。对于同一网络中的跨存储库拉取请求,命名空间头部带有这样的用户:用户名:分支。

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


此模型假设在使用 API 时,我将成为 upstream 存储库,我可以合并来自 fork:branch

的更改

这与我使用他们的网络应用程序时的工作方式相反。我可以从我的 fork 向 upstream repo 提交 Pull Request,该 repo 表示为 (base-fork, base)。

在我看来,如果无法使用 API 访问 upstream 存储库,我就无法针对它创建拉取请求。用过github api的人能确认一下吗?

【问题讨论】:

    标签: git github


    【解决方案1】:

    您无需访问上游存储库即可提交拉取请求,就像您在向某人发送电子邮件时无需访问某人的电子邮件帐户一样。使用您自己的凭据进行身份验证,但将请求发布到其他用户的存储库。

    这与我使用他们的网络应用程序时的工作方式相反。我可以提交 从我的 fork 到上游 repo 的拉取请求,表示为 as (base-fork, base)。

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

    根据the web-app documentation

    考虑分支时,请记住基础分支应在哪里应用 更改,head 分支 包含 what 你想申请。

    这与 API 请求的 basehead 参数的含义完全匹配。

    【讨论】:

    • 注意base-fork和APIbase参数的区别。你也许会注意到这个问题。
    • @SenthilKumaran 同意,我对 base-fork 的引用不准确 - 我想到了 base-fork/base 组合。查看改进后的答案。
    • 对不起,更新的答案也是错误的。查看我从 API 文档中提取的内容。它说“base - 您希望将更改拉入的分支的名称。这应该是当前存储库中的现有分支。”
    • @SenthilKumaran 这样定义base有什么问题?请注意,current repository 是指发布 create-pull-request API 请求的存储库。
    • 因此,“current-repository”中的分支意味着您需要具有写入/推送访问权限,以便该存储库。当您使用 Github 工作流程创建 PR 时,这完全不同。您推送到您的仓库/分支,并针对您没有权限的上游基础仓库创建 PR。
    猜你喜欢
    • 2022-12-26
    • 1970-01-01
    • 2017-05-30
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-12
    • 1970-01-01
    相关资源
    最近更新 更多