プロジェクトをデプロイする¶
AI Teams は、既存の GitHub Actions ワークフローによるデプロイを管理し、 途中で中断した操作を再開できます。配備済み・公開済み・検証済みを別々に 表示します。検証済みは対象環境の正常性を確認した状態であり、製品の目標が 達成されたことまでは意味しません。
この機能は任意で、AI Teams Plugin 自体の更新とは別です。事前にレビューした ワークフロー、実行権限を持つ GitHub CLI の認証、操作ごとの承認が必要です。 ワークフローの導入、環境の設定、認証情報のコピーは行いません。
デプロイ要求を用意する¶
リポジトリの外に、所有者だけがアクセスできるディレクトリを用意し、 Control Lite の SQLite データベース、要求、承認を保存します。再開時にも 同じデータベースを使ってください。削除すると、GitHub に送信済みの操作の 記録を失うおそれがあります。
英語版の要求例に、次の値を設定します。
- 対象リポジトリ、Issue 番号、環境、今回の要求を識別する
request_id - 配備する成果物のコミットと SHA-256 ダイジェスト、公開範囲
- 復旧先となる以前の成果物と公開範囲
- レビュー済みワークフローの数値 ID、ブランチまたはタグ、コミット
インストール済み Plugin の skills/ai-teams/scripts/project_deployment.py を、
対応する Python で実行します。以下では、その正確なパスを
project_deployment.py と略記しています。
python3 project_deployment.py start --database control.sqlite --request request.json
python3 project_deployment.py status --database control.sqlite --request request.json
start はローカルに要求を保存し、request_digest を返します。
デプロイは送信しません。同じ識別子の要求を書き換えることはできません。
新しい要求は、以前の環境操作が終了し、結果を確認してから作成します。
承認して実行し、結果を確認する¶
承認ファイルには、schema: ai-teams-project-deployment-approval/v1、
start が返した正確な request_digest、対象の operation、所有者の実際の
判断を示す approval_ref、タイムゾーン付きの有効期限 expires_at を設定します。
識別子をコピーしたり JSON を生成したりするだけで、承認を得たことにはなりません。
python3 project_deployment.py dispatch --database control.sqlite --request request.json --approval approval.json
python3 project_deployment.py resume --database control.sqlite --request request.json
最初は deploy(配備)を承認します。結果を確認した後に expose(公開)、
続いて verify(正常性の検証)をそれぞれ承認します。dispatch は次の段階を
選び、ワークフローを一度だけ起動します。検証もワークフローを起動するため、
承認が必要です。
resume は実行状態を一度読み取り、処理中ならその状態を返します。
必要な時点で再度確認してください。常駐の監視や自動再試行は追加しません。
送信結果が不明な場合は、GitHub の実行を確認して resume --run-id NUMBER を
使います。対象リポジトリ、ワークフロー、コミット、実行回数、今回の操作を示す
実行名を照合してから再開します。dispatch を繰り返しても、送信予約済みの
操作は再送しません。環境操作の重複を防ぐため、ワークフローの再実行は拒否します。
復旧する¶
処理中のワークフローが終了した後、rollback の承認を別途用意します。
python3 project_deployment.py rollback --database control.sqlite --request request.json --approval rollback-approval.json
python3 project_deployment.py resume --database control.sqlite --request request.json
以前の成果物と公開範囲が正確に復元され、正常性も確認できた場合だけ復旧完了に なります。不明または失敗した復旧は未解決として残り、新しいデプロイを開始しません。 古い要求から、新しいデプロイを上書きする復旧もできません。ソース変更、実行失敗、 Issue の終了だけでは、本番環境の復旧権限は得られません。
ワークフローと接続する¶
レビュー済みワークフローは、workflow_dispatch の文字列入力 deployment を
受け取り、実行名に ${{ fromJSON(inputs.deployment).attempt_id }} を使います。
環境を変更する前に、ワークフローのコミットと成果物のダイジェストを確認し、
環境側の承認、操作識別子による重複防止、環境ごとの直列実行を行ってください。
実行中のデプロイを中断してはいけません。
操作後は環境から状態を取得し、result.json を
ai-teams-deployment-${{ fromJSON(inputs.deployment).attempt_id }} という名前の
成果物として保存します。入力値をそのまま観測結果として返してはいけません。
要求、操作、成果物、環境、公開範囲、正常性の情報が欠けている場合や一致しない
場合、正常に完了したとは判定しません。
完全な結果形式と制限は、デプロイ契約
にあります。接続先は GitHub.com の API バージョン 2026-03-10 で、実行 ID を
含む起動応答が必要です。接続仕様はローカル試験で検証していますが、実際の対象
環境では、別途レビューしたワークフローとの接続試験が必要です。