February 3, 2013

Travis CIでComposer installする時にGitHubのAPI上限エラー

2013/03/21 追記
https://travis-ci.org/profile/[username]/profile に表示される"Token"を、GitHub側のTravis CI(Service hook)設定の"Token"に入力すれば、以下は不要と思います。(たぶん。。。)

--

.travis.ymlのbefore_scriptで"php composer.phar install"した時に、GitHubのAPI上限エラーが発生してしまいました。GitHubのAPIは、token無しだと1時間辺り60回までとなっています。token有りだと1時間辺り5000回になります。

以下を参考にして、Travis CI上でtokenを用いたComposer installを試してみました。
http://blog.simplytestable.com/creating-and-using-a-github-oauth-token-with-travis-and-composer/
* セキュリティ的にどうなのか微妙な気はしますが、後述の通りscopesは空(public access)です。ダミーのアカウントで行うと安全かもしれません。


ローカルのコンソールで、以下のコマンドを実行します。("[username]"は置換してくだい。)
$ curl -u '[username]' -d '{"note":"Travis Composer"}' https://api.github.com/authorizations
成功するとコンソールにjsonが表示され、"token"の項目が有ります。尚、"scopes"は空です。この"token"を、以下の"xxx"に当てはめて、適当な名前で保存します。
{
    "config":{
        "github-oauth":{
            "github.com":"xxx"
        }
    }
}
.travis.ymlでComposer installする前に、上記のファイルを~/.composer/config.jsonとしてコピーします。実行すべきコマンドは
mkdir -p ~/.composer
cp [保存したファイル名] ~/.composer/config.json
です。これで、tokenを使用したComposer installが出来るようになりました。

No comments:

Post a Comment