我通过github API创建了一个github存储库的fork。现在,稍后,我想将原始存储库中的任何更新提取到fork中。在我的用例中,这应该始终是一个快进。我已经读取了对原始存储库的访问权限并对fork进行了读写操作。
我想过可能会创建一个Pull Request然后接受(这两个都可以通过API完成),但这会产生噪音(Pull Requests被创建和销毁)并且看起来似乎不对。
有没有办法通过API做到这一点?
答案 0 :(得分:12)
我没有内幕消息,所以这可能是一个错过的功能,将在某些时候删除。在那之前:
Github提供所有提交(我假设)整个fork网络;因此,接受提交哈希的API将很乐意处理来自上游或其他分支的哈希(repos/commits/compare和creating a pull requst明确记录了此内容。)
因此,有两种方法只能通过API进行更新:
使用Git data api:如果您不更改fork的主人,这通常是最佳选择。
/repos/upstream/repo/git/refs/heads/master
,并从中获取哈希值/repos/my/repo/git/refs/heads/master
。使用更高级别的merge api:这将创建一个合并提交,有些人喜欢。
master
。 拉取请求给自己并通过api合并:这最终不仅会创建合并提交,还会创建PR。
/repos/your/repo/pulls
head = "upstream:master"
的POST
/repos/your/repo/pulls/number/merge
“上游:主人”符号可能也适用于选项1& 2,保存API调用。
答案 1 :(得分:2)
目前不可能,但我已经将其添加到我们的API愿望清单中。 :)
答案 2 :(得分:0)
这对我有用,因为我需要从上游进行更新,但没有提交合并请求。我的裁判是master
。
POST /repos/:myUsername/:myRepo/pulls
INPUT: {title, head: 'ownerFromUpStream:master', base: 'master', ...}
sha
(例如response.data.head.sha
)PATCH /repos/:myUsername/:myRepo/git/refs/master
PARAMS: {sha: shaFromPullRequest}
DOC。