調べると標準では用意されていないのでAPIを叩いて取得するのが一般的らしい。
cURL
curlを使ってこんな感じで処理するのがどうも定番。
> curl https://api.github.com/repos/ユーザー/リポジトリ/releases
json形式でドカッとデータが取れるので、findstrで(Windowsの場合ね)download_count を抽出すればダウンロード数が新しい順に取得できる。
> curl https://api.github.com/repos/ユーザー/リポジトリ/releases -o download.txt
> findstr "download_count" download.txt
"download_count": 53,
"download_count": 57,
"download_count": 14,
"download_count": 22,
対応するtagの確認は tag_name で抽出。
> findstr "tag_name" download.txt
"tag_name": "20171020",
"tag_name": "20170622",
"tag_name": "20161118",
"tag_name": "20160712",Python
curlだけだと使い勝手がいまいちなのでPythonでスクリプトを書いてみた。
import requests
r = requests.get('https://api.github.com/repos/hoge/Project01/releases')
for item in r.json():
print("tag_name: ",item["tag_name"])
print("name: ", item["name"])
print(item["assets"][0]["url"])
print("download count: ", item["assets"][0]["download_count"])
print("")
実行結果
tag_name: 20171020 name: Release 0.9.1 (2017/10/20) https://api.github.com/repos/hoge/Project01/releases/assets/5117284 download count: 53 tag_name: 20170622 name: Release 0.8.3 (2017/6/19) https://api.github.com/repos/hoge/Project01/releases/assets/4154981 download count: 57 tag_name: 20161118 name: Release 0.8.2 (2016/11/18) https://api.github.com/repos/hoge/Project01/releases/assets/2666798 download count: 14 tag_name: 20160712 name: Release 0.8.0 (2016/7/12) https://api.github.com/repos/hoge/Project01/releases/assets/2239693 download count: 22
ではでは
