さまざまな基準でGitHubリポジトリ情報を取得します
-
16-10-2019 - |
質問
データサイエンスフォーラムの新機能、そしてここの最初のポスター!
これは一種の特定の質問かもしれません(うまくいけばそうではないことを願っています)が、他の人が興味を持っていると思います。
私は基本的にこのようなものでgithubを照会する方法を探しています:
Give me a collection of all of the public repositories that have more than 10 stars, at
least two forks, and more than three committers.
結果は、JSONデータダンプ、WebページへのURLなど、実行可能な形式をとる可能性があります。10,000リポジトリまたは大きなものからの情報で構成されます。
この種のことは、APIまたは他の事前に構築された方法を使用して可能ですか、それともすべてのページをスクレイしようとする独自のカスタムソリューションを構築する必要がありますか?もしそうなら、これはどれほど実現可能であり、どのようにアプローチするのでしょうか?
解決
簡単なブラウジングに基づいた私の限られた理解 Github API ドキュメント、現在はありません 単一のAPIリクエスト それはサポートします すべて リストされている基準 すぐに. 。ただし、例から目標を達成するために、次のシーケンスを使用できると思います(少なくとも、このアプローチを使用します)。
1) リクエスト すべての公開リポジトリに関する情報(API返品 概要表現 それだけ): https://developer.github.com/v3/repos/#list-all-public-repositories;
2) ループ ステップ1で取得されたすべての公開リポジトリのリストを通じて、個々のリソースを要求し、新しい(詳細)リストとして保存します(これは返品です 詳細な表現, 、言い換えれば、すべての属性): https://developer.github.com/v3/repos/#get;
3) ループ すべてのリポジトリの詳細なリストを介して、基準で対応するフィールドをフィルタリングします。あなたの例の要求のために、あなたは次の属性に興味があります 親 物体: Stargazers_count, forks_count. 。コミットターの数でリポジトリをフィルタリングするために、別のAPIを使用できます。 https://developer.github.com/v3/repos/#list-contributors.
GitHub APIに精通している人からの更新やコメントは大歓迎です!