[PHP]Composer使用時にGitHubのAPI rate limitを回避する

カテゴリ: composer

Composerを利用して短時間で大量のパッケージを取得すると、GithubのAPI実行回数制限に引っかかってまうばあいがあります。上限に掛かるとComposerは、認証のためにgithubのユーザIDとpassowordを要求します。要求通りIDとパスワードを入力すればユーザ認証が行われ、回数制限の上限が緩和されるので処理が先に進みます。

ですが、共有のPCを使っているときなど、IDやパスワードを直接入力したくない場合があります。このような場合は、githubから取得出来るOAuthトークンを利用すると良いです。

OAuthの生成とComposerへの設定方法

もし、ComposerコマンドからGithubの認証情報の入力を望まない場合は、トークンを利用して、手動で認証することができます。
以下の手順に従ってください。

GitHubで、OAuthトークンを生成します。

GitHubにログインし、Setting画面のにアクセスします。
左メニューのPersonal access tokenの中にある、Generate new tokenを選択して、トークンを生成してください。

ボタンをクリックすると、スコープの指定が要求されるので、通常はpublic_repoだけチェックをいれてトークを作れば大丈夫です。

トークン生成についての詳細は、こちらに記載があります。

ComposerにOAuthトークンを追加

下記のコマンドを実行して、configの設定値にOAuthトークンを追加してください。

composer config -g github-oauth.github.com OAuthのトークン

これでComposerに認証情報を尋ねられることなく、インストールやアップデートが実行できるようになります。

githubのAPI実行回数制限に掛かりやすい状況

環境によっては、あまりgithubにアクセスしていないはずなのに、回数制限に掛かってしまう場合があります。大きな企業でプロキシサーバ経由でアクセスしている場合は、発信元IPアドレスが同一になるので、社内で他の人がgithubへアクセスしていると、制限に掛かりやすくなります。

githubのAPI実行回数制限のチェック方法

下記のWebAPIを実行すると、現在の制限値(いつまでに、あと何回呼び出せるか)を確認できます。
https://api.github.com/rate_limit

こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。