GitHub:github.com の外でプルリクの更新が遅い理由
GitHub がほかのソフトに変化を伝える道は2つです。だれかが用意した Web サーバーへ Webhook を届けるか、聞かれるのを待つか。手元の道具には GitHub が届けられる住所が無いので、何度も聞き直します。見えているのは最後に読んだ時の姿です。GitHub の REST API のベストプラクティスは、ポーリングではなく Webhook のイベントを受けるよう勧め、どうしてもポーリングするなら、決まった間隔で、要るだけの回数、条件付きの要求で聞くよう書いています(2026年10月26日に確認)。
GET /repos/持ち主/リポジトリ名/pulls?state=open If-None-Match: "644b5b0155e6404a9cc4bd9d8b1ae730" HTTP/2 304
遅れる理由
- 知らされず、聞いている:2回の読み取りの間には何も届きません。読んだ直後の変化は、次に読んだ時に出ます。
- 304 Not Modified:前の答えの
etagを付けて(If-None-Match)読むと、その答えが変わっていない間は 304 が返ります。中身が同じという意味で、古いという意味ではありません。トークン付きなら1時間の上限にも数えません(「API rate limit exceeded」)。 - 通知:
GET /notificationsはX-Poll-Intervalを付けて答えます。次に聞くまで待つ秒数です(GitHub の例では 60)。サーバーが混んでいると延びることがあり、守るよう求めています。If-Modified-Sinceを付けて聞き、新しい物が無ければ 304 です。 - 検索で作る一覧:
review-requested:・user-review-requested:・reviewed-by:・author:は GitHub の検索(GET /search/issues)の条件で、検索は索引から答えます。GitHub の障害の報告には、その索引が遅れた例があります。2025年12月23日には issue とプルリクの検索の結果が最大3分古くなり、2026年2月23日には issue とプルリクの更新がすぐには検索に出ませんでした。 - 検索には別の上限:トークン付きで1分に30回、トークンなしで10回。読み取りのたびに検索をいくつも走らせる道具は、1時間の上限より先にこちらに当たります。
どうすればよいか
- 読み直す:道具で読み直すか、github.com でそのプルリクを開きます。
- 検索にまだ出ないプルリク:リポジトリ自身の一覧(
GET /repos/持ち主/リポジトリ名/pulls)は検索ではありません。そちらと、GitHub の稼働状況のページで Issues や Pull Requests の障害が出ていないかを見ます。 - 自分のスクリプトで通知を読むなら:前の答えの
Last-ModifiedをIf-Modified-Sinceに付け、読み取りの間はX-Poll-Interval秒以上あけます。 - その場で知りたいなら:リポジトリか組織に Webhook を置き、自分のサーバーで受けます。
IntelliJ IDEA で GitHub のプルリクを見るなら
Lesstep の Pull Request Inbox for GitHub は、JetBrains IDE(2024.1 以降)のプラグインです。ツールウィンドウが画面に出ている間は5分ごとに一覧を読み直し(設定 | ツール | Pull Request Inbox for GitHub の「開いている間は5分ごとに一覧を読み直し、新しいレビューの依頼を知らせる」・最初から入っています)、「読み直す」でもすぐ読みます。ツールウィンドウを隠している間は、読みも知らせもしません。読むたびに前の答えの etag を付けるので、変わっていない一覧は 304 で返ります。5分ごとの読み直しの後、新しく自分のレビュー待ちになったプルリクごとに通知を出します。コメント・承認・チェックは知らせません。「開いているリポジトリ」の「開いているものすべて」は各リポジトリ自身の一覧で、ほかの絞り込みと範囲は GitHub の検索なので、検索の索引に従います。開いているプルリクは、読み直しのたびにチェック・レビュー・コメントごとその場で読み直し、選んだファイルと、中身が変わっていなければ読んでいた位置もそのままにします。受信箱・差分・会話は無料、承認・コメント・マージは Pro(月 US$1.50・30日間の無料試用つき)です。画面は日本語です。
GitHub は GitHub, Inc. の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitHub, Inc.・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:GitHub のマージの断り(405・409) · GitHub のレビューの断り(422) · GitHub の検索の 422「Validation Failed」 · 「Resource not accessible by personal access token」 · 401「Bad credentials」 · 「Resource protected by organization SAML enforcement」 · 「API rate limit exceeded」 · GitHub の差分の 406「too_large」・3,000件 · GitHub の行のコメントの 422「must be part of the diff」 · GitHub のブランチの更新の断り(422) · GitHub のプルリクが作れない(422・403) · GitHub の自動マージの断り · GitHub の下書き・レビュー準備完了・閉じるの断り · GitHub の会話の解決の断り · GitHub のチェックが出ない(check runs の 403) · GitHub のファイルの中身が読めない · GitHub の比較の断り(404・422) · GitHub のコメント・返信の断り(ロック・アーカイブの 403) · GitHub のマージの方法の断り(405) · GitHub のブランチが見つからない(404・301) · GitHub Enterprise Server につながらない · GitHub のレビューの依頼が出ない · GitHub のプルリクの一覧が足りない · GitHub の 404・名前を変えたリポジトリ(301・307) · GitHub の行のコメントが outdated・差分に無い · GitHub の変更の提案が適用できない · GitHub の必須チェックが Expected のまま · GitHub でコードオーナーのレビューが要る · GitHub で未解決の会話がマージを止める · GitHub で署名の無いコミットがマージを止める · GitHub のマージキューでマージするブランチ · GitHub でマージが最後の push の承認を待っている · GitHub でマージがコードスキャンの結果を待っている · GitHub でマージがコード品質の結果を待っている · GitHub でコードのカバレッジの水準がマージを止める · GitHub でライセンスの適合の結果がマージを止める · GitHub でブランチのロックや更新の制限がマージを止める · GitHub でマージの後にブランチが消えない · GitHub でチームの承認(Required reviewers)がマージを止める · GitHub でシークレットスキャンのアラートがマージを止める · GitHub でスタックしたプルリクがマージできない · GitHub で push の規則が push を止める · GitHub でコミットのメタデータの規則がマージを止める · GitHub で強制 push が止められる · GitHub でプルリクをマージしても issue が閉じない · GitHub のプルリクを手元にチェックアウトできない · GitHub のプルリクがマージ先と衝突している · GitHub で変更を依頼された・レビューを取り消す · GitHub で共同作者がコミットに数えられない · GitHub で依存関係のレビューのチェックが失敗する · GitHub で Dependabot がプルリクをリベースしない · GitHub でフォークが同期できない · GitHub でプルリクのベースのブランチを変えられない · GitHub でプルリクを取り消せない · GitHub でプルリクのテンプレートが出ない · GitHub でプルリクにラベルや担当者が付かない · GitHub でプルリクを閉じられない・開き直せない · GitHub でプッシュ保護にプッシュを止められた · GitHub でプルリクのコメントが隠された · GitHub でデプロイが成功するまでプルリクをマージできない · GitHub でチームに頼んだレビューがメンバーに置き換わった · GitHub でプルリクのファイルの Viewed が外れた · GitHub でマージしていないプルリクがマージ済みになった · GitHub で Copilot のレビューが承認に数えられない · GitHub でワークフローが作ったプルリクのチェックが動かない · GitHub でプルリクに Update branch のボタンが出ない · GitHub で Dependabot のプルリクのチェックが失敗する · GitHub でフォークからのプルリクのチェックが失敗する · GitHub でコミットメッセージの [skip ci] でチェックが動かない · GitHub で保存期間を過ぎてチェックが消えた · GitHub の公開リポジトリのコードレビューの制限 · GitHub でリポジトリのプルリクがオフ・制限されている · GitHub でスタックのプルリクごとにチェックが走る · GitHub でスカッシュでマージ済みのコミットが次のプルリクに出る · GitHub のプルリクでファイルの差分が出ない · GitHub でフォークのプルリクのブランチに push できない · GitHub のプルリクのチェックが取り消された · GitHub で Rebase and merge が使えない · GitHub のマージのコミットメッセージが思った形にならない · GitHub のプルリクでファイルの全行が変わったと出る · GitHub の API がタイムアウトした · GitHub のプルリクで画像や文書の差分が見た目で出ない · GitHub のレビューの依頼が断られる(422) · GitHub で Copilot が作ったプルリクのチェックが動かない・承認が数えられない · GitHub の push が GH006・GH013 で断られる · GitHub で承認が足りずマージできない・数に入らない承認 · JetBrains の IDE で GitHub のプルリクを扱う · English