2016-06-21 6 views
0

ユーザーはgithubアカウントを使用してサインアップし、すべての個人リポジトリと公開リポジトリを表示できます。私はgithubからトークンを取得してリポジトリ(公開と非公開の両方)を取得することができますが、唯一の問題はすべてのリポジトリが返されていないことです(リポジトリが取得されないなど)。github APIですべてのリポジトリを取得することができません

私はサーバ側の実装にgolangを使用しています。 thisメソッドを使用してリポジトリを取得します。

+1

あなたがリンクしている方法(ユーザーリストのリスト)についてのコメントは、「指定したユーザーのリスト**公開**リポジトリ」(私の強調)です。したがって、「一部のリポジトリは取得されません」というのはおそらくそれらが公開されていないからです。 – ain

+0

こんにちは、リンクを更新しました。 "(* RepositoriesService).List(ユーザー文字列、opt * RepositoryListOptions)([リポジトリ、*レスポンス、エラー)"メソッドを使用してreposを取得しています。 –

+0

また、私は私用のreposを得ることができることに注意してください、唯一の問題は、完全なリストを返していないということです。 –

答えて

1

デフォルトでは、ListOptions引数を受け入れるすべてのコマンドにはPerPage属性があります。すべてのデータを取得するには、得られる結果がPerPage未満になるまで、Page属性を使用してページを反復処理する必要があります。ゴーっぽい擬似コードで

、それは次のようになりたい:

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

あなたはListOptions構造体がhereを定義した見ることができます。

0

すべてのreposを取得するためにrobbritが指摘したように、デフォルトでは30個のreposが返されるため、PerPageオプションを使用する必要があります。それが私の問題を解決しました。

関連する問題