LoginSignup
6
6

More than 5 years have passed since last update.

GitHubのAPI取り方

Last updated at Posted at 2014-07-16

GitHubにつながらないタイミングがあるとき

$ git pull origin devel

よく落ちる時間帯などをデータ収集してマイニングすればCRONなども見直せると思います。

Developer

APIも公開されてて親切
https://github.com/blog/1348-github-system-status-api
1年半前に公式から公開されてます。

対象読者

  • GitHubのAPIを使ってみたいがサンプルとか見てみたい
  • まずは、日本語で見てみたい
  • 詳しくは自分で実装したいのでさわりだけ見てみたい
  • GitHubに嫌われてるのかなと思ってる方
  • Rubyなどでいい感じにGitHubのAPIを連携したい方

早速紹介します

あくまでも紹介なので、インフラ部分までは解説しません。せいぜい導入が限界です、私のやる気では

1. ここからはコマンド中心になります

ターミナルを起動してください


朗報

ターミナルといえば、3日前にiTerm2の2.0がリリースされましたので使っている方はぜひアップデートしましょう
http://iterm2.com/news.html

具体的に変更された箇所は以下です。興味がある方は見てみるといいと思います。
http://iterm2.com/appcasts/full_changes.txt


  • API
GET /users/:username

恒例のHello Worldから

$ curl https://api.github.com/zen

これを叩きますと、ランダムにレスポンスが返ります。

ユーザの情報を返します

// リクエスト

$ curl -i -u 自分のユーザ名 https://api.github.com/users/ユーザ名


// レスポンス

//<ステータス部分>
HTTP/1.1 200 OK
Server: GitHub.com
Date: Wed, 16 Jul 2014 15:27:01 GMT
Content-Type: application/json; charset=utf-8
Status: 200 OK
・・・
Content-Security-Policy: default-src 'none'
Content-Length: 1301
Access-Control-Allow-Credentials: true
・・・
Vary: Accept-Encoding
X-Served-By: 03d91026ad8428f4d9966d7434f9d82e

//<JSON部分>
{
  "login": "pollseed",
  "id": 6825891,
  "url": "https://api.github.com/users/pollseed",
  "html_url": "https://github.com/pollseed",
 ・・・
  "type": "User",
  "site_admin": false,
  "name": "ポールシード",
  "company": "engineer",
  "blog": "http://qiita.com/pollseed",
  "location": "Tokyo",
  "email": "",
  "hireable": false,
  "bio": null,
 ・・・<A>
  "created_at": "2014-03-01T17:09:47Z",
  "updated_at": "2014-07-15T00:30:29Z"
 ・・・<B>
}

試しに私のアカウントにGETリクエストを投げてみました。長いので少し省略してます。みなさんも自分のアカウントにリクエスト投げてみてください。きっとその情報が帰ってくるはずです。

  • 「-i」をつけないと、上のHTTP/1.1 200 OKというJSONの上記に書かれた部分がでなくなります。(<ステータス部分>のみ)

  • 「-u」をつけないと、パスワードも入れずに見れます。要は認証しないという形を取ります。

→ちなみに-uをつけて、認証するとupdated_atの下(省略してある<B>)にプライベートリポジトリの数や、プランや空き容量なども閲覧することができてしまいます。

まぁ、こちらが公式のGitHubにアクセスすればHTTPのステータスが返ってくるので利用できるというわけです。

$ curl -i https://api.github.com

2. 応用

Shellにしてもいいです.
またはアプリケーションにしてしまっても・・・その場合は
https://github.com/settings/applications/new
こちらにクライアントIDを登録しましょう
OAuth認証のやつです。TwitterAPIと同じ要領です。迷うことはないでしょう。

こちらのサンプルソースなどは気が向いたら更新します。
例えば、GETリクエストのレスポンスJSONを加工すれば、今までアップしたリポジトリ情報から色々探れますので、バックアップの助けになったり、壊れたコミットなども取得できるかもしれないです。
重ね合わせで使えるAPIなので、色々と利用できます。

3. 資料(In English)

6
6
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
6
6