如何通过Github API从它的原始更新fork

Tho*_*low 6 github-api

我已经通过github API创建了一个github存储库的fork.现在,稍后,我想将原始存储库中的任何更新提取到fork中.在我的用例中,这应该始终是一个快进.我已经读取了对原始存储库的访问权限并对fork进行了读写操作.

我想过可能会创建一个Pull Request然后接受(这两个都可以通过API完成),但是这会产生噪音(Pull Requests被创建和销毁)并且似乎不对.

有没有办法通过API做到这一点?

avi*_*viv 14

我没有内幕消息,所以这可能是一个错过的功能,将在某些时候删除.直到那时:

Github提供所有提交(我假设)整个fork网络; 因此,接受提交哈希的API将乐于处理来自上游或其他分支的哈希(这是明确记录的repos/commit/comparecreate requst).

因此,有两种方法只能通过API进行更新:

  1. 使用Git数据api:如果你不改变你的fork的主人,这通常是最好的选择.

    1. 获取上游引用/repos/upstream/repo/git/refs/heads/master,并从中获取哈希值
    2. /repos/my/repo/git/refs/heads/master使用相同的哈希更新fork PATCH .
  2. 使用更高级别的合并API:这将创建合并提交,有些人喜欢.

    1. 像以前一样得到上游参考
    2. 创建合并以master在您的仓库中分支.
  3. 拉取请求给自己并通过api合并:这最终不仅会创建合并提交,还会创建PR.

    1. 创建PR:POST to /repos/your/repo/pullswithhead = "upstream:master"
    2. 从响应中获取PR url,
    3. 合并它:PUT to /repos/your/repo/pulls/number/merge

"upstream:master"符号可能也适用于选项1和2,从而节省了API调用.