michimani.net

GitHub のリポジトリに付いたスター数をカウントしてみた

2020-01-16

ふと GitHub のリポジトリに付いたスター数を数えてみたいと思ったので、 GitHub の API を利用してカウントしてみました。

目次

作ったもの

カウント用のスクリプトは Python で作りました。 (3.7.5)

使い方

使用する場合は python3 -m venv .venv && source ./.venv/bin/activate などで Python 3 の環境を作って && 入って、その中で下記コマンドを実行します。

$ python count-github-stargazers.py michimani
Count stargazers of michimani's GitHub repositries...


auto-start-stop-ec2                     :     1
qiita-to-hugo                           :     1
resize-s3-image                         :     1
start-stop-ec2-python                   :     1

TOTAL                                   :     4

補足

今回作ったスクリプトについて簡単に補足を書いておきます。

GitHub の API

今回使用したのは、ユーザのリポジトリ一覧を取得する API です。
スクリプト中にもありますが、エンドポイントは下記 URL となっています。

GET https://api.github.com/users/:username/repos

認証は不要で、指定したユーザの Public な リポジトリ一覧を取得することができます。
per_page パラメータでページングが可能で、 page パラメータでページを指定できます。

その他、下記のオプションで取得できるリポジトリの種類、ソート順を指定することができます。(詳細については公式ドキュメントを参照してください)

Python の argparse モジュール

今までも Python で簡単な CLI ツールのようなものを作っていましたが、今回は argparse という Python の標準モジュールを使用してみました。
CLI ツールを作るとなると、引数やオプションの処理を実装する必要があります。それらの 必須/任意 の管理などは面倒なのですが、 argparse モジュールを使用することにより引数やオプションの管理が非常に簡単になります。

今回のスクリプトでは GitHub のユーザ名のみを必須の引数とするシンプルなものですが、引数が渡されなかった場合に定型文を出力してくれたり、デフォルトで -h オプションを使用することで各引数・オプションのヘルプを出力することもできます。

argparse モジュールについては下記の記事を参考にさせていただきました。

まとめ

GitHub のリポジトリに付いたスター数をカウントするスクリプトを Python で作ってみた話でした。
スター数をカウントしたいというか argparse モジュールを使ってみたかった感じになってますが、自分のリポジトリに付いてるスター数をカウントしたくなったら参考にしてみてください。

どうでもいいですが、スター数の名前が単純に stared_count じゃなくて stargazers_count なのがなんかかっこいいですよね。スターゲイザーっていう響きが。

以上、よっしー (michimani) でした。