2016-06-21 159 views
0

我想允许用户使用github帐户进行注册,并显示所有他/她的私人和公共存储库。我能够从github获取令牌并获取存储库(公共和私有),但唯一的问题是它不会返回所有的存储库(即某些存储库不会被提取)。无法通过github API获取所有存储库API

我正在使用golang进行服务器端实现。 使用this方法获取存储库。

+1

您链接到的方法(列表用户存储库)的评论说:“列出指定用户的**公共**存储库”(我强调)。所以“某些库不被提取”可能是因为那些不公开。 – ain

+0

您好我已更新链接,我正在使用“(* RepositoriesService).List(用户字符串,opt * RepositoryListOptions)([] Repository,* Response,error)”方法来获取回购。 –

+0

也请注意,我能够获得私人回购,唯一的问题是它没有返回完整列表。 –

回答

1

默认情况下,所有接受ListOptions参数的命令都具有PerPage属性。为了获取所有数据,必须使用Page属性遍历页面,直到获得的结果数少于PerPage

在围棋上下的伪代码,它会是这样的:

totalResults := []Result{} 
for page := 0; ; page++ { 
    results := fetch current page 
    totalResults = append(totalResults, results) 
    if len(results) < per page { 
    break 
    } 
} 

你可以看到ListOptions结构定义here

0

正如robbrit指出的那样,为了获得所有回购,我们必须使用PerPage选项,因为默认情况下只返回30个回购。这解决了我的问题。