2013-07-02 68 views
12

我想要通過github API獲取所有回購請求的列表。我遵循http://developer.github.com/v3/pulls/的指示,但是當我查詢'/ repos /:owner /:repo/pulls'時,它始終返回比網站上顯示的更少的請求。如何通過github API獲取所有回購請求的列表?

例如,當我查詢torvalds/linux repo時,我得到9個打開的請求(網站上有14個請求)。如果我添加'?state = closed',我會得到一組不同的11個關閉請求(網站顯示大約20個)。

有誰知道這種差異出現在哪裏,並且如果有任何方法可以通過API獲取回購請求的完整列表?

+0

你能再檢查一次嗎?有測試,預計19,得到19 – random

回答

1

有一種方法可以獲得完整列表,並且您正在執行此操作。你用什麼來與API溝通?我懷疑你可能沒有做正確的事情。例如(目前只有13個打開的拉請求)使用我的API封裝(github3.py)我得到所有打開的拉請求。如何做到這一點沒有我在Python包裝的一個例子是:

import requests 
r = requests.get('https://api.github.com/repos/torvalds/linux/pulls') 
len(r.json()) == 13 

,我也可以通過計算結果自己得到這一結果(隱約)在捲曲:curl https://api.github.com/repos/torvalds/linux/pulls

但是,如果您遇到超過25個(或30個)拉取請求的存儲庫,這是一個完全不同的問題,但絕對不是您現在遇到的問題。

+0

有沒有辦法獲得超過30拉回要求回購?也許在不同的網絡請求? – shreyj

+0

@shreyj GitHub API上的許多端點都進行了分頁,並且可以使用響應中的[Link headers](http://developer.github.com/v3/#pagination)進行訪問。如果你正在嘗試使用python或ruby來提出請求,我當然可以幫助你。 –

3
  1. 如果你想檢索所有的請求(提交,評論,問題等),你必須使用分頁。 https://developer.github.com/v3/#pagination

  2. GET請求「拉」將只返回打開的拉請求。

  3. 如果您想要獲取所有拉取請求,您可以將參數狀態設置爲全部或使用問題。

的額外信息

如果您需要從Github上的其他數據,如問題,那麼你就可以找出從問題拉請求,然後你可以檢索每個拉請求,不管它已關閉或打開。它還會給你更多的屬性(可合併,合併,合併提交,提交等) 如果問題是拉取請求,那麼它將包含該屬性。否則,這只是一個問題。

從API:https://developer.github.com/v3/pulls/#labels-assignees-and-milestones

「每拉請求是一個問題,但不是每一個問題是pull請求出於這個原因,‘共享’兩種功能的操作,如操作受讓人,標籤和在問題API中提供里程碑。「

編輯我剛剛發現的問題行爲類似於拉請求,所以一個需要做的狀態參數設置爲所有

+0

可否請你提供獲取所有拉請求的代碼(witht state'all') –

+0

請原諒我,我只是看到它是由@akshaynagpal –

3

您可以通過變量state獲取所有請求(關閉,打開,合併)。

在GET查詢只需設置state=all,像這個 - >

https://api.github.com/repos/:owner/:repo/pulls?state=all 

欲瞭解更多信息:查詢參數表中https://developer.github.com/v3/pulls/#list-pull-requests

+0

提供的如何從獲得的結果中只濾出請求數 –

+0

我的問題是,如果我GET?state = all,它會給出一個小於?state = closed +?state = open – Akabelle

相關問題