今回はMacのターミナルを使ってAPIを叩いてダウンロード数を取得してみます。
手順は
- OAuthアクセストークンを生成する
- 生成したトークンを用いてAPIを叩き、全てのリリース情報をJSONで取得する
- 取得したJSONからダウンロード数を見つける
となります。
1. OAuthアクセストークンを生成する
githubのユーザ設定画面のApplicationsタブを選択し、Personal access tokensの"Generate new tokens"ボタンをクリックします。
すると情報入力画面が表示されます。
Token descriptionは適当で良いと思います。また、Select scopesは"repo"だけで十分です。
Generate tokenボタンを押下するとアクセストークンが発行されるので控えておきます。
2. 生成したトークンを用いてAPIを叩き、全てのリリース情報をJSONで取得する
以降、ターミナルで作業します。
アクセストークンを使う方法はいくつか有りますが、GitHub API v3にあるように今回はGETパラメータとして指定する方法を用います。
$ curl https://api.github.com/?access_token=OAUTH-TOKEN
ひとまずリリース情報を取得する前に、上記URLで401や403が返ってこないことを確認すると良いと思います。
さて、Releases | GitHub APIによると、全てのリリース情報を取得する場合のURLは
GET /repos/:owner/:repo/releases
という形式になります。すなわち、hogeユーザのfugaレポジトリの全リリース情報は
$ curl https://api.github.com/repos/hoge/fuga/releases?access_token=OAUTH-TOKEN
というコマンドで取得できます。
なお、特定のリリースのみ指定することも可能です。
ただし、その場合固有IDを指定する必要があり、結局一度全リリース情報を取得しなければいけないようなので、今回は行っていません。
3. 取得したJSONからダウンロード数を見つける
curlの標準出力をファイルに保存し、vimやTextEditなど適当なエディタで開きます。
出力内容は各リリース情報の配列となっており、新しいリリースが配列の先頭に来るようです。
各リリースのタグ名は"tag_name"というキーで判別します。
そのタグにファイルを添付している場合は、"assets"というキーに各ファイルの情報が収められています。
各ファイルのダウンロード数はそのassetの"download_count"キーを調べると知ることができます。
実際にこの方法で自分のレポジトリを調べてみたらカウント数0でした。ヒャッハー!