2017-03-17 26 views
1

我有一個要求,我必須拉我的GitHub存儲庫中的問題列表,並製作出數據圖表。但是,我堅持從我的GitHub存儲庫中提取問題列表。如何從github導出「問題」數據並處理它?

我試圖理解GIT API頁面,但我真的不知道從哪裏開始工作。

如果有人以前做過這樣的事情,請對此有所瞭解。

回答

2

您可以檢查出這確實導出一個項目的問題,作爲一個CSV文件(Excel的實例)python script unbracketed/export_repo_issues_to_csv.py,使用GitHub Issue API

您將看到使用的API查詢:

REPO = '' # format is username/repo 
ISSUES_FOR_REPO_URL = 'https://api.github.com/repos/%s/issues' % REPO 
r = requests.get(ISSUES_FOR_REPO_URL, auth=AUTH) 
2

我試圖理解GIT API頁面,但我真的不知道從哪裏從我開始工作。

你可能更喜歡使用圖書館以您選擇的語言與Github交談,而不是從頭開始。 Github API有許多細微差別,例如分頁,緩存,速率限制,這些庫爲您處理的錯誤處理。

Perl在others之間有PithubNet::Github。 Ruby有github_api等等。


如果你真的想與curl做到這一點,在Github API overview使用curl它的所有基本的例子。獲取問題列表非常簡單。

"List issues for a repository" Github上說要GET /repos/:owner/:repo/issues。這意味着如Schema docs中提到的https://api.github.com/的GET請求與路徑/repos/:owner/:repo/issues。您填寫:owner:repo

curl 'https://api.github.com/repos/evalEmpire/perl5i/issues' 

這將在一個大的JSON列表中得到all the open issues for evalEmpire's perl5i repository。然後,您可以使用JSON解析器將其轉換爲數據結構,並根據您的喜好進行操作。

您還可以添加各種參數作爲查詢字符串的一部分。這將讓所有的問題,因爲2016年

curl 'https://api.github.com/repos/evalEmpire/perl5i/issues?state=all&since=2016-07-01T00:00:00Z' 
中間更新