2013-05-13 107 views
6

我正在开发自动服务以使用Git中心存储库。而我的问题在我身边 - 我无法找到一种方法,通过它的散列\名称来获取特定分支中的所有提交。通过分支名称 id与git api获取git提交

我的代码是一个自动化的代码审查工具。所以我添加了一个功能来忽略我的评论过程中的特定分支(例如测试分支或类似的东西)。所以在我的服务中,我将分支标记为忽略。一旦我从git hub api获得提交 - 那里没有关于当前提交属于哪个分支的信息。

我开始思考,我的总体GitHub的想法是错误的 - 因为犯分支链接是很明显的事情,所以应该有一些做的API开发者忽略的是,在GetCommits方法

所以我的问题是 - 有没有办法找出哪个分支提交(使用v3 api json结果)属于github api(v3 - GET/repos /:owner /:repo/commits /:sha)。

感谢

+2

你如何从GitHub获取提交?你在使用仓库钩子(http://developer.github.com/v3/repos/hooks/)还是你手动提取提交(http://developer.github.com/v3/repos/commits/)?如果你使用钩子,那么你会被通知哪个分支被推送到 - http://developer.github.com/v3/activity/events/types/#pushevent。 – 2013-05-13 08:47:49

+0

我正在使用两个实际。第一个告诉我,有一个提交添加,然后我用第二个获取其数据。不过谢谢你 - 我会尽量使用这些信息。 – chaZm 2013-05-13 10:59:41

+0

我将需要获得分支中的所有提交 - 而不是最后一个提交。所以我需要一种方法来获得所有分支提交或找到所有评论列表中的一个分支 – chaZm 2013-05-13 11:15:12

回答

9

目前在GitHub的API没有办法询问是否提交在特定分支的历史。你可以做的唯一的事情是获取特定分支的所有提交,然后遍历提交以查看列表中是否有特定的提交。要做到这一点,请向/repos/:owner/:repo/commits?sha=branchname发送请求,其中branchname是您想要提交的分支的名称。 https://api.github.com/repos/izuzak/pmrpc/commits?sha=master

+2

我也强烈建议@chaZm将ETag信息存储在这些列表中,以便他们可以在下一次通过时只接收他们尚未见过的提交(假设他们已将旧信息存储在某处)。 – 2013-05-13 19:32:23