GitHub Actions:「Waiting」でレビューを待つデプロイを承認する
Required reviewers(必須のレビュアー)のある環境を名指ししたジョブは、レビュアーの1人が承認するまで Waiting の状態で止まります。GitHub では実行のページの Review deployments から承認します。GitHub CLI にはそのためのコマンドがありませんが、gh api でできます。30日のうちに誰も承認しなければ、その実行は先へ進みません。
何が、どれだけ待つか
- 承認できる人:環境の Required reviewers に載っている最大6人(またはチーム)で、リポジトリの読み取り以上の権限がある人。承認は1人で足ります(GitHub のドキュメント Deployments and environments)。
- 見え方:実行とジョブの状態が
waitingになります(REST API とgh run list --status waiting)。その前のジョブはふつうに終わります。 - どれだけ:「環境の承認は最大30日まで待てる」、そして実行全体は35日までで、それには「待ちと承認の時間」も入ります(GitHub の Actions の上限)。2026年10月30日に読んだ公開の実行2件は、3日と24日待っていました。
- レビューの後:承認されると、ほかの保護のルールも通ってからジョブが進み、そこで初めて環境のシークレットを読めます。却下されると、ワークフローは失敗します。
- ほかにジョブを待たせる物:Wait timer(1〜43,200分・課金されない)、環境のデプロイ先のブランチとタグの決まり、独自の保護のルール。これらは誰にもレビューを頼みません。
GitHub で承認する
- ワークフローの実行を開きます。自分のレビューが要る実行には Review deployments のついた知らせが出るので、それを押します。
- 環境(いくつでも)を選び、必要ならコメントを書きます。
- Approve and deploy(承認)か Reject(却下)を押します。
リポジトリの管理者は、代わりに環境の待っているジョブをすべて通すこともできます。Deployment protection rules の横の Start all waiting jobs → I understand the consequences, start deploying。環境で Allow administrators to bypass configured protection rules を切ってあると、これは断られます(GitHub のドキュメント Reviewing deployments)。
コマンドラインで承認する
gh run にはそのコマンドがありません。要望(cli/cli#5773)は2022年6月から開いたままです。REST API なら2回の呼び出しでできます。まず、実行が待っている環境と、その id、自分が承認できるか:
gh run list --status waiting
gh api repos/OWNER/REPO/actions/runs/RUN_ID/pending_deployments \
--jq '.[] | {name: .environment.name, id: .environment.id, current_user_can_approve}'
次にレビュー。本文は --input で JSON として送ります。-f environment_ids[]=… だと id が文字列で送られ、GitHub は HTTP 422 For 'items', "…" is not an integer. と答えます(cli/cli#8166)。
echo '{"environment_ids":[ENVIRONMENT_ID],"state":"approved","comment":"Ship it"}' |
gh api --method POST repos/OWNER/REPO/actions/runs/RUN_ID/pending_deployments --input -
state は approved(承認)か rejected(却下)、comment は必須です。送れるのは必須のレビュアーだけです。トークンは、classic なら repo スコープ、fine-grained なら Deployments の読み書きが要ります。待っているデプロイを読むのは Actions の読み取りで足ります(GitHub のドキュメント Review pending deployments for a workflow run)。
Review deployments のボタンが出ない
- 実行を始めたのが自分で、環境に Prevent self-review が付いている:その場合「デプロイを始めた人は、必須のレビュアーであってもそのジョブを承認できない」。リストのほかの人が承認します。REST API では
current_user_can_approveがfalseです。 - リストに載っていない:自分も、自分の入っているチームも。
- ジョブがレビューを待っていない:Wait timer・ブランチの決まり・独自のルールを待っている。
- GitHub Free・Pro・Team の私的リポジトリ:これらのプランでは「必須のレビュアーは公開リポジトリでしか使えない」。環境そのものは Pro・Team・Enterprise なら私的リポジトリでも使えます。Required reviewers の項目が出てこず、リポジトリを公開にすると出る、と Team プランの持ち主が2025年8月に報告しています(community#170307)。これらのプランでの回り道の1つは、デプロイのワークフローを手で始める形(
workflow_dispatch)にすることです。レビューを頼む代わりに、デプロイできる人を「始められる人」に絞る形になります。
HTTP 422「At least one environment has already been approved or rejected」
環境がもうレビューを待っていないときの、レビューの呼び出しへの答えです。2026年10月の公開の報告が引いている形:
gh: At least one environment has already been approved or rejected (Validation Failed)
ほかのレビュアーが先に承認したか、実行がキャンセルされた(その報告では新しい push で)のに、一覧にはまだ待っていると出ていた。失敗と決める前に、実行の status を読み直します。もう waiting でなければ、承認する物は残っていません。
ジョブごとに承認が要る
環境はワークフローではなくジョブに付きます。いくつものジョブが保護された環境を名指ししていると、そこに着いたジョブがそれぞれレビューを待ち、そういうジョブの多い人は何度も承認していると報告しています。環境をワークフロー全体に1回だけ付けたいという要望は2022年4月から出ています(community#14417)。回り道は、環境の要るステップを少ないジョブにまとめるか、実行が待っている環境を1回のレビューでまとめて承認することです。
知らせは来るのに、実行にたどり着けない
GitHub はレビュアーに「<user> requested your review to deploy to an environment」と知らせます(理由は approval_requested)。2026年10月の公開の報告によると、チームがレビュアーだとメンバー全員に届き、知らせの API の項目には対象の URL が無いので、受信箱の道具は実行ではなくリポジトリへリンクします。自分を待っている物を探すには、リポジトリごとに gh run list --status waiting、または GET /repos/OWNER/REPO/actions/runs?status=waiting で実行を並べます。
IntelliJ IDEA からデプロイを承認する
Pipeline Inbox for GitHub Actions Workflows は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。すべてのリポジトリの実行を IDE のツールウィンドウに並べます。レビュー待ちの絞り込みで、待っている実行をリポジトリをまたいで出し、自分を待っている実行には「○○へのデプロイがあなたのレビューを待っています」と環境の名前が出ます。承認か却下で、GitHub が「承認できる」と言う環境すべてに、コメントつきのレビューを1回で送ります。自分がレビューできる待ちがあると、ほかの人の実行でも、IDE が通知で1回知らせ(ワークフロー・実行・環境・リポジトリ)、開くとその実行が承認と却下のボタンつきで出ます。GitHub 自身の通知はリポジトリへのリンクで、実行には飛びません。今のブランチの実行はステータスバーに出て、待っている実行は動いている実行より先に出ます。読むのは無料、再実行・キャンセル・ワークフローの実行・デプロイのレビューは Pro(月 US$1.50・30日間の無料試用つき)です。fine-grained のトークンでレビューするには Deployments の読み書きが要ります。画面は日本語です。
GitHub と GitHub Actions は GitHub, Inc. の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitHub, Inc.・JetBrains のいずれとも提携しておらず、後援・承認も受けていません。
ほかに:「Unable to retry this workflow run because it was created over a month ago」 · 「Workflow does not have 'workflow_dispatch' trigger」 · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English