GitHubのリポジトリの40,000件を超えるStarの付与履歴を全て取得したい
解決したいこと
GitHubの特定のリポジトリのStarの付与履歴を全て取得したいと考えています。そこで、GitHubのREST APIを使い、以下のドキュメントを参考に取得を試みました。
ドキュメントからは把握できず、挙動からの推測ではありますが、取得可能なStarの付与履歴は40,000件までのようです。そこで、40,000件を超えるStarの付与履歴を全て取得する方法について相談させていただきたいです。また、GitHubのREST APIによって、取得可能なStarの付与履歴が40,000件までという説明があれば、教えていただきたいです。
発生している問題・エラー
import requests
# 対象リポジトリとREST API エンドポイント
# 参考:https://docs.github.com/ja/rest/activity/starring
owner = "pandas-dev"
repo = "pandas"
url = f"https://api.github.com/repos/{owner}/{repo}/stargazers"
# personal access token
# 参考:https://docs.github.com/ja/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens
token = "XXXXXXXXXX"
headers = {
"Accept": "application/vnd.github.v3.star+json",
"Authorization": f"token {token}",
}
params = {"per_page": 100, "page": 1}
stargazers = []
while True:
response = requests.get(url, params=params, headers=headers)
stargazers += response.json()
# 次のページが存在する場合、パラメータを更新
if "next" in response.links.keys():
params["page"] += 1
else:
break
len(stargazers)
40000
上記は以下のリポジトリについてのStarの付与履歴ですが、この件数に対して実際のStar数は42k(約42,000)件であり、不足していることが推測されます。