movee(モビー) オノデラのブログ

(株)movee代表。週末は自社サービスを作っています。

GithubAPIで自分のGithub情報を表示している

自社のHPに何かエンジニアの日々の活動を載せられないかなと思い、Githubデータを表示できれば普段どんなことをやっているかがわかるなぁと思っていました。そこでGithubAPIを使って自社HPにエンジニアのGithubデータを出してみました。 GithubAPIはパブリックリポジトリの情報であればAPI申請なども不要で簡単に利用ができました。 curlで叩くとcurl https://api.github.com/users/yutoonodera/repos\?sort\=pushed_atGithubデータが取得できました。リポジトリ名、概要、作成日、更新日時、最新push日時などが取れます。 yutoonoderaの箇所を自分のGithubアカウント名に変更すればアカウント名に応じたGithubデータが取得できます。なので変な話、他人のGithubアカウント名をセットするだけで他人のデータが取得できます。もちろん、パブリックリポジトリだけ。 GithubAPIには注意点があって、アクセスできる回数に制限があります。確か1時間6回ほどです。HPにアクセスがあるたびにAPIを呼び出してしまうとすぐに制限に引っかかってしまってデータが取得できなくなります。1時間に6回以上アクセスがあるサイトは毎回API呼び出ししていると良くないです。 弊社HPではAPIで取得したデータはcacheファイルに書き込みます。で、そのcacheファイルからデータを取得して表示しています。ただ、これだけだと1度取得した後にずっと同じで更新されないためcacheデータ作成の更新日時を取得して、更新日時から24時間経過の場合はGithubAPIを呼び出して最新のGithub情報を取得し、cacheファイルを更新しています。 なので弊社HPに表示されているGithub情報は24時間以上の間隔で更新されています。(リアルタイム更新ではないです)

【データ処理の流れ】

・ GithubAPIでデータ取得

    ↓

・cacheファイルにデータを書き込み

    ↓

・cacheファイルの更新日時が24時間未満の場合はcacheファイルのGithubデータを表示

・cacheファイルの更新日時が24時間以上の場合は最初に戻る(GithubAPIでデータ取得)

という流れです。今のところ問題なくHPに表示されています。 とはいえ、更新日時が古いリポジトリばかりをHPに表示するのも考えようだなと思うので、定期的に過去パブリックリポジトリも更新していこうと思います。