LoginSignup
0
0

More than 3 years have passed since last update.

GitHubリポジトリからコントリビューターの一覧を取得する

Last updated at Posted at 2020-03-25

RubyでGitHub APIにアクセスするには octokit gemを使う。

gem 'octokit'

あるリポジトリのコントリビューターを取得する。

require 'octokit'
client.auto_paginate = true
members = client.contributors('rails/rails')
users = users = members.map{|member| client.user member.login }

rails/railsのコントリビューターはブラウザで見ると3988人いるが、APIで取得できたのは380人までだった。

members.size
# => 380

取得したコントリビューターから、ロケーションが日本のどこかになっているユーザーを取得する。

regexp = /日本|japan|北海道|hokkaido|青森|aomori|岩手|iwate|宮城|miyagi|秋田|akita|山形|yamagata|福島|fukushima|茨城|ibaraki|栃木|tochigi|群馬|gunma|埼玉|saitama|千葉|chiba|東京|tokyo|神奈川|kanagawa|新潟|niigata|富山|toyama|石川|ishikawa|福井|fukui|山梨|yamanashi|長野|nagano|岐阜|gifu|静岡|shizuoka|愛知|aichi|三重|mie|滋賀|shiga|京都|kyoto|大阪|osaka|兵庫|hyogo|奈良|nara|和歌山|wakayama|鳥取|tottori|島根|shimane|岡山|okayama|広島|hiroshima|山口|yamaguchi|徳島|tokushima|香川|kagawa|愛媛|ehime|高知|kochi|福岡|fukuoka|佐賀|saga|長崎|nagasaki|熊本|kumamoto|大分|oita|宮崎|miyazaki|鹿児島|kagoshima|沖縄|okinawa/
users.select {|user| user.location.to_s.downcase.match? regexp }

railsのコントリビューターのうち、日本をロケーションに指定しているのは下記の方々でした。
rails開発ありがとうございます。

users.select do |user|
  user.location.to_s.downcase.match? regexp
end.map do |user|
  member = members.find{|member| member.login == user.login }
<<~MD
**#{user.login} (#{user.name})** #{member.contributions} contributions
<img src="#{user.avatar_url}" width="50">
MD
end.each {|str| puts str }

kamipo (Ryuta Kamizono) 2713 contributions

amatsuda (Akira Matsuda) 843 contributions

yui-knk (Yuichiro Kaneko) 234 contributions

kennyj (Toshinori Kajihara) 233 contributions

sikachu (Prem Sichanugrist) 223 contributions

yahonda (Yasuo Honda) 205 contributions

yhirano55 (yhirano55) 152 contributions

JuanitoFatas (Juanito Fatas) 92 contributions

koic (Koichi ITO) 83 contributions

kenta-s (kenta-s) 40 contributions

giraffate (Takayuki Nakata) 34 contributions

mtsmfm (Fumiaki MATSUSHIMA) 30 contributions

soartec-lab (Shodai Suzuki) 27 contributions

tricknotes (Ryunosuke Sato) 25 contributions

shioyama (Chris Salzberg) 21 contributions

take (Takehiro Adachi) 20 contributions

willnet (Shinichi Maeshima) 18 contributions

akihiro17 (Hiroaki Izu) 14 contributions

riseshia (Shia) 10 contributions

ttanimichi (Tsukuru Tanimichi) 10 contributions

ryohashimoto (Ryo Hashimoto) 9 contributions

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0