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なので、色々と利用できます。