調べると標準では用意されていないので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
ではでは