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

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

```Gemfile
gem 'octokit'
```

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

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

[rails/rails](https://github.com/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
<img src="https://avatars0.githubusercontent.com/u/12642?v=4" width="50">
**amatsuda (Akira Matsuda)** 843 contributions
<img src="https://avatars0.githubusercontent.com/u/11493?v=4" width="50">
**yui-knk (Yuichiro Kaneko)** 234 contributions
<img src="https://avatars0.githubusercontent.com/u/5356517?v=4" width="50">
**kennyj (Toshinori Kajihara)** 233 contributions
<img src="https://avatars2.githubusercontent.com/u/13426?v=4" width="50">
**sikachu (Prem Sichanugrist)** 223 contributions
<img src="https://avatars1.githubusercontent.com/u/4912?v=4" width="50">
**yahonda (Yasuo Honda)** 205 contributions
<img src="https://avatars3.githubusercontent.com/u/73684?v=4" width="50">
**yhirano55 (yhirano55)** 152 contributions
<img src="https://avatars3.githubusercontent.com/u/15371677?v=4" width="50">
**JuanitoFatas (Juanito Fatas)** 92 contributions
<img src="https://avatars1.githubusercontent.com/u/1000669?v=4" width="50">
**koic (Koichi ITO)** 83 contributions
<img src="https://avatars3.githubusercontent.com/u/13203?v=4" width="50">
**kenta-s (kenta-s)** 40 contributions
<img src="https://avatars0.githubusercontent.com/u/6219390?v=4" width="50">
**giraffate (Takayuki Nakata)** 34 contributions
<img src="https://avatars0.githubusercontent.com/u/17407489?v=4" width="50">
**mtsmfm (Fumiaki MATSUSHIMA)** 30 contributions
<img src="https://avatars0.githubusercontent.com/u/1796864?v=4" width="50">
**soartec-lab (Shodai Suzuki)** 27 contributions
<img src="https://avatars3.githubusercontent.com/u/18366969?v=4" width="50">
**tricknotes (Ryunosuke Sato)** 25 contributions
<img src="https://avatars2.githubusercontent.com/u/290782?v=4" width="50">
**shioyama (Chris Salzberg)** 21 contributions
<img src="https://avatars3.githubusercontent.com/u/561827?v=4" width="50">
**take (Takehiro Adachi)** 20 contributions
<img src="https://avatars1.githubusercontent.com/u/1095842?v=4" width="50">
**willnet (Shinichi Maeshima)** 18 contributions
<img src="https://avatars2.githubusercontent.com/u/82371?v=4" width="50">
**akihiro17 (Hiroaki Izu)** 14 contributions
<img src="https://avatars3.githubusercontent.com/u/7583548?v=4" width="50">
**riseshia (Shia)** 10 contributions
<img src="https://avatars2.githubusercontent.com/u/7338443?v=4" width="50">
**ttanimichi (Tsukuru Tanimichi)** 10 contributions
<img src="https://avatars0.githubusercontent.com/u/5486854?v=4" width="50">
**ryohashimoto (Ryo Hashimoto)** 9 contributions
<img src="https://avatars0.githubusercontent.com/u/1477268?v=4" width="50">