2013-05-13 111 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