API で不可解な問題が発生した場合、発生したと思われる問題の解決策をこちらの一覧から確認できます。
サポートされていない API バージョンに関する 400
エラー
X-GitHub-Api-Version
ヘッダーを使用して、API のバージョンを指定する必要があります。 次に例を示します。
$ curl --header "X-GitHub-Api-Version:2022-11-28" https://api.github.com/zen
存在しないバージョンを指定すると、400
エラーが発生します。
詳しくは、「API のバージョン」を参照してください。
既存リポジトリの 404
エラー
通常、クライアントが正しく認証されていない場合、404
エラーが送信されます。
このような場合には 403 Forbidden
が表示されることを想定されているかもしれません。 ただし、プライベート リポジトリに関 する情報は 提供したくないので、API は代わりにエラーを 404
返します。
トラブルシューティングを行うには、正しく認証していること、OAuth アクセス トークンに必要なスコープがあること、サード パーティのアプリケーション制限によってアクセスがブロックされていないこと、トークンの有効期限が切れておらず、取り消されていないことを確認します。
表示されない結果がある
リソースの一覧 (ユーザー、問題 など) にアクセスするほとんどの API 呼び出しでは、改ページ処理がサポートされます。 要求したがすべての結果を受け取っていない場合は、おそらく最初のページしか表示されていません。 より多くの結果を受け取るには、残りのページを要求する必要があります。
改ページ URL の形式を推測 しないように することが重要です。 すべての API 呼び出しで同じ構造が使用されるわけではありません。 代わりに、すべての要求で返されるリンク ヘッダーからページネーション情報を抽出します。 改ページ位置の自動修正の詳細については、「REST API 内での改ページ位置の自動修正の使用」を参照してください。
Basic 認証のエラー
2020 年 11 月 13 日に、 REST API に対するユーザ名およびパスワードによる認証と OAuth 認証 API は非推奨となり、使用できなくなりました。
基本認証に username
/password
を使用する
API 呼び出しで username
と password
使用している場合、それらでは認証できなくなります。 次に例を示します。
curl -u my_user:my_password https://api.github.com/user/repos
代わりに、エンドポイントをテストするとき、またはローカルで開発を行うときに、personal access tokenを使用します。
curl -H 'Authorization: Bearer my_access_token' https://api.github.com/user/repos
OAuth App の場合は、Web アプリケーションフローを使用して、API 呼び出しのヘッダーで使用する OAuth トークンを生成する必要があります。
curl -H 'Authorization: Bearer my-oauth-token' https://api.github.com/user/repos
Timeouts
GitHubがAPIを処理するのに10秒以上かかると、GitHubはリクエストを終了させ、タイムアウトのレスポンスが返されます。