確認ガイド
確認工程の考え方と、確認担当者の決め方は SaaS 版と同じです(確認ガイド・人の確認)。このページは、マーケットプレイス版で違う点をまとめます。
| SaaS 版 | マーケットプレイス版 | |
|---|---|---|
| 確認方法 | 担当者の判断を待つ/期限後に自動で進める | 担当者の判断を待つ/外部条件待ち |
| 期限を過ぎたら | 通知して待つ・自動で進める・差し戻す・却下するから選ぶ | 自動では決めない(通知して待つ) |
| 行き先の候補 | 2〜5 件 | ない |
| 確認の対象 | 直前の工程の出力 | 案件の設定の版と成果物の版 |
期限では決まらない
登録 Agent で動く案件では、期限を過ぎても確認は自動で決まりません。 期限を過ぎると、確認担当者(と、設定していれば期限超過時の連絡先)に知らせ、そのまま判断を待ちます。
期限で進めたい業務は、確認担当者が期限内に決める運用にしてください。
確認依頼と期限超過のメールは、SaaS 版と同じく確認担当者に届きます。送信には、管理画面の「メールプロバイダー設定」で決めた送信手段と送信元が使われます。メールプロバイダーが設定されていないと、メールは送られません(設定ガイド)。
版に固定された確認
確認依頼には、「確認内容の版」と「次に実行する Agent」、成果物が出ます。確認担当者は、その版の設定と成果物に対して判断します。
確認待ちのあいだに、オーナーが案件の設定や成果物を新しい版にすると、確認の内容も新しい版に置き換わります(案件ガイド)。確認担当者は、置き換わった内容を見て判断し直します。
確認担当者に指名されても、オーナーでなければ案件の設定や成果物は直せません。 直してほしいときは、差し戻すか、オーナーに頼んでください。
外部条件待ち
「外部条件待ち」は、人ではなく外部サービスの状態で次の工程へ進める確認方法です。登録 Agent を置いたワークフローでだけ使えます。 今使える外部条件は「GitLab の MR のマージ」の 1 つです。前の工程の Agent が作った MR が、期待した版のままマージされたら、次の工程へ進みます。
設定する
確認工程の確認方法で「外部条件待ち」を選び、3 つの欄を入れます。
| 欄 | 入れるもの |
|---|---|
| 外部条件 | 「GitLab の MR のマージ」 |
| 観測に使う連携先 | MR を読むための GitLab の連携先。このプロジェクトの連携先から選びます |
| 対象を示す出力 | 前の工程の登録 Agent の、JSON 形式の出力。中身は {"gitlab_project_id": …, "mr_iid": …, "expected_head_sha": "…"} です |
expected_head_sha は 40 桁の 16 進数(コミットの SHA)です。この出力を作るのは Agent の仕事です。契約の出力に、この形式の JSON を宣言した Agent を前の工程に置いてください(ワークフローガイド)。
進み方
- 対象の MR が、
expected_head_shaの版のままマージされると、自動で次の工程へ進みます。 決定は「外部条件の成立で進行」と記録され、人の承認とは区別されます - 確認担当者は進められません。 できるのは差し戻しと却下だけです(「外部条件の成立で進む確認です。人は進められません (差し戻し・却下はできます)」)
- まだマージされていないとき、期待と違う版でマージされたときは、成立せずに待ち続けます
- 状態は 300 秒ごとに読み直します。案件の画面の「進行」に、対象・最終観測・観測した版・次の観測が出ます
確かめられないとき
連携先や対象を示す出力が設定されていない、出力の形式が読めない、といった理由で条件を確かめられないときは、確認担当者の判断を待つ確認に戻ります。 案件の画面に保留の理由が出ます。
| 保留の理由 | 直すところ |
|---|---|
| 外部の確認に使う連携先が、このプロジェクトの接続設定にありません | 設定の連携先に、GitLab の連携先を追加する |
| 外部の確認対象をどの出力から読むかが、工程に設定されていません | 確認工程の「対象を示す出力」を設定する |
| 前の工程の Agent が、確認対象を示す出力を作りませんでした | Agent の出力を確かめる |
| 確認対象を示す出力の形式を読み取れませんでした | Agent の出力の JSON を確かめる |
接続の認証が通らない・対象が見つからない・連携先が使えないときは、30 分おいて読み直します。最初の 1 回だけ通知します。外部サービスにつながらない・応答が遅いといった一時的な障害のときは、1 分から最大 60 分まで間隔を広げながら読み直します(通知はしません)。
GitLab からの Webhook で早く進める
300 秒ごとの読み直しを待たずに進めたいときは、GitLab の Webhook を使います。
- オーナーが、プロジェクトの設定の連携先で「外部条件待ちのWebhook秘密鍵」に 16〜255 文字の値を入れて保存します。保存した値は表示されません
- GitLab のプロジェクトの Webhook に、次を登録します
- URL:
https://<環境のドメイン>/api/connect/<プロジェクトの ID>/<連携先の ID> - Secret token: 1 で入れた値
- トリガー: Merge request events
- URL:
- MR がマージされると、Webhook を受けた時点で状態を読み直します
プロジェクトの ID は、プロジェクトの画面の URL(/p/projects/<プロジェクトの ID>)にあります。連携先の ID は、観測に使う連携先の OAuth プロバイダーの ID です。管理者に確かめてください。 URL・ID・秘密鍵のどれかが合わないと、Webhook は 404 で断られます。
Webhook の内容だけでは進みません。 Webhook は読み直しのきっかけで、進めるかどうかは連携先で MR を読んで決めます。
秘密鍵を消去すると、新しい秘密鍵を保存するまで Webhook を受け付けません(300 秒ごとの読み直しは続きます)。置き換えると、古い秘密鍵の Webhook はすぐに受け付けなくなるので、GitLab 側の Secret token も同じ値に更新してください。