GithubのContribute数をツイートするTwitterbotを作った話
一時期mediumに浮気していましたが、はてなブログに出戻りします。
Twitterbotを作成した
下のような感じでGithubへのContribute数を投稿するものを作成しました。
通算で698回Githubへコミットしています。https://t.co/3Uu7JyBwBh Github contribute count app author shogo yamda
— shogo.yamada (@yshogo87) 2017年12月27日
作成方法
下記の記事を参考させていただきました。
herokuにデプロイされたRubyからTwitterへ投稿する方法は全く同じ方法を使っています。
GithubのContribute数を取得する
GithubにはAPIが用意されていて、これを叩けばGithubへのContributeの詳細が取れます。
これを使って以前はこんなアプリケーションを作成しました。
APIはこちら
https://developer.github.com/v3/
APIドキュメントを詳しく読んでないですが、この方法だとPrivateリポジトリが見えないんですよね。
たぶん、Privateリポジトリへのコミット数も多分取れると思いますが、自分はスクレイピングしましたwww (スクレイピングは自己責任でお願いします)
だって、ここにcontribute数が書いてあるんだもの。
実際にスクレイピングしているクラスはこちら
gemはnokogiri
を使用しています。
require 'nokogiri' require 'open-uri' class GithubContributeCount def create_tweet_text count = count_contribute "通算で" + count + "回Githubへコミットしています。https://github.com/yshogo Github contribute count app author shogo yamda" end private def count_contribute html = Nokogiri::HTML open 'https://github.com/yshogo' text = html.xpath('//h2[@class = "f4 text-normal mb-2"]').first.inner_text text.delete! 'in the last year' text.delete! 'cobuo' text.gsub(/[\r\n]/,"") end end
全体のソースコードは下記におきました。 よろしければどうぞ。