Skip to content
Latchkey

手動承認とは?pipelineを人間のために一時停止する

手動承認とは、通常は本番へのdeployの前に、人間が続行を承認するのを待つ、pipelineにおける意図的な一時停止です。

自動化は強力ですが、一部の判断は人に委ねるべきです。手動承認は、権限を持つレビュアーが承認(または却下)をクリックするまでpipelineを保留するゲートを挿入します。最も一般的なのは本番へのdeployの直前で、変更が本番に反映される前に人間が最終確認をしたい場面です。

承認ゲートの仕組み

pipelineがゲートに到達すると、一時停止して承認者に通知します。誰かが承認するまで、下流では何も実行されません。承認が却下されるかタイムアウトすると、pipelineは停止し、deployは行われません。

承認が適する場所

承認は、リスクの高い移行に最も適します。buildを本番へ昇格させる、全ユーザーへリリースする、インフラの変更を適用する、などです。単体テストの実行のようなリスクの低いステップでは、一時停止はフィードバックを遅らせるだけで、ほとんど価値をもたらしません。

簡単な例

GitHub Actionsでは、必須レビュアーを設定した保護されたenvironmentに紐づくjobは、レビュアーがUIで承認するまでdeploy jobで待機します。GitLabも同様の手動jobと保護されたenvironmentを提供します。

承認と自動化されたゲートの比較

  • 手動承認: 人間が判断する。
  • quality gate: 自動化されたルール(カバレッジ、スキャン)が判断する。
  • 多くのpipelineは両方を使い、自動化されたゲートがふるいにかけ、人間が最終リリースを承認します。

承認を速く保つ

放置された承認はデリバリーを停滞させます。通知を適切な人にルーティングし、妥当なタイムアウトを設定し、本当に人間を必要とする変更に承認を限定することで、ゲートがボトルネックにならずに保護できます。

重要なポイント

  • 手動承認は、権限を持つ人が承認するまでpipelineを一時停止します。
  • 本番deployやその他のリスクの高いステップの前に最も有用です。
  • 手動承認を自動化されたquality gateと組み合わせて、多層的な制御を実現しましょう。

関連ガイド