通知の送信条件
スキャン通知の送信条件
スキャン通知は、通知モードと、その回の検出結果・差分に応じて送信します。 通知モードや通知先の設定値は設定を参照してください。
diffモードの送信
diffモードでは、前回からの変化と現在の未解決状態を通知します。
以下の表では、通常のパッケージ、EOLパッケージ、EOLのベースOSを「検出項目」と呼びます。
| 状態 | スキャン通知 |
|---|---|
| 変化あり | 新規検出、解消などの変化を通知 |
| 変化なし | 検出項目が残っていれば、変化がないことと現在の未解決状態を通知 |
| 検出なし | 変化もなければ、検出なしの通知を有効にしている場合だけ通知 |
| 最後の検出項目が解消 | 現在の検出項目がなくても、解消を通知 |
| スキャン失敗 | 検出項目や差分がなくても通知 |
| 保持中 | Kubernetesの実体未確認で前回のパッケージ検出結果を保持していれば、変化がなくても通知 |
| イメージの実体変更・参照更新 | パッケージの変化がなくても通知 |
保持中の送信条件には、通常のパッケージとEOLパッケージの履歴が含まれます。 保持している履歴がベースOSのEOLだけの場合は、実体未確認による保持だけでは送信しません。
差分の成立条件は差分と履歴の判定、結果を保持する条件はスキャン失敗時の扱いを参照してください。
fullモードの送信
fullモードでは差分の履歴を使わず、現在のレポートを送信します。
| 現在の状態 | スキャン通知 |
|---|---|
| パッケージの検出結果またはEOLのベースOSあり | 毎回送信 |
| スキャン失敗あり | 毎回送信 |
| 検出結果もスキャン失敗もなし | 検出なしの通知を有効にしている場合だけ送信 |
スキャン通知の条件を満たさない回でも、修正計画の送信条件を満たせば修正計画を通知します。
週次レポートの送信
diffモードでは、設定された週次レポートの曜日に、送信対象となったスキャン通知へSlackの完全レポートを加えます。
- 曜日が一致するだけでは、スキャン通知の送信を強制しない
- 検出項目も変化もなく、検出なしの通知が無効なら、週次レポートも送らない
- 修正計画だけを送る回には、スキャンの完全レポートを追加しない
曜日や無効化の設定は設定、完全レポートの表示範囲はチャンネルのレポートを参照してください。
Slackスレッドの投稿条件
Slack Botによるdiffモードのスキャン通知では、今回のレポートに検出項目があり、次のいずれかに該当すると新しいスレッドを投稿します。
- 前回からの差分がある
- 週次レポートの曜日に当たる
- 初回通知などで有効な前回レポートへのリンクがない
- 通知先チャンネルを変更し、前回レポートへのリンクを引き継げない
今回のレポートに検出項目がなければ、スキャン失敗や履歴の保持があっても、詳細スレッドは投稿しません。 修正計画だけを送る回にも、スキャンのスレッドは投稿しません。
fullモードでは、現在のレポートをチャンネルへ投稿します。
Slack Incoming Webhookはスレッド投稿に対応しません。
スレッドの位置と前回レポートへのリンクはスレッドのレポート、接続設定は設定を参照してください。
スキャン通知の再送
diffモードでは、必要な通知の送信がすべて成功してから、次回の比較に使う履歴を保存します。
| 送信結果 | 履歴と次回の扱い |
|---|---|
| 全通知先への送信に成功 | 今回の状態を保存し、次回の比較に使用 |
| 一部または全部の送信に失敗 | 比較用の履歴を更新せず、次回も以前の履歴と比較 |
| 通知が不要 | 今回の状態をそのまま保存 |
| 送信後の履歴保存に失敗 | 次回も以前の履歴と比較するため、同じ変化を再通知する場合あり |
一部の通知先で失敗しても、ほかの通知先への送信は試みます。 そのため、次回は成功済みの通知先にも同じ変化が届く場合があります。
Slackの分割投稿やスレッド投稿が途中で失敗した場合、投稿済みのメッセージは残ります。 保存済みのレポートへのリンクは更新せず、次回の通知で重複して投稿される場合があります。
修正計画の送信条件
修正計画は、スキャン通知とは別に送信の要否を判定します。 計画の生成やPR操作の判断は修正計画の処理の流れを参照してください。
Slackへの送信
Slackの修正計画は、最後に配信した表示内容と比較して送信します。
- 表示内容が変わった場合に送信
diffモードの週次レポートの曜日には、表示する内容があれば変更がなくても送信- 表示に変更がない週次通知では、マージ済み・未マージでクローズ済みのPRを除外
- 除外後に表示する内容がなければ、変更がない週次通知は送信しない
- 計画の生成時刻だけの変化では送信しない
表示内容が変わった場合は、終了したPRも含めて通知します。 表示の読み方はSlackの修正計画を参照してください。
Webhookへの送信
汎用Webhookでは、Slackの表示内容とは別に、最後の配信記録と比較します。
- 計画内容・計画の利用可否・計画の保存失敗の状態が変わった場合に送信
- 未配信のPR操作がある場合に送信
- PRの書き込みを止める問題が続く間は毎回送信
- 計画の生成時刻だけの変化では送信しない
- スキャン通知またはSlackの修正計画を送る回には、計画に変化がなくても現在の修正計画を含める
データ形式は修正計画の共通フィールドを参照してください。
修正計画の再送
修正計画とPR操作の配信記録は、スキャンの比較用履歴とは別に扱います。
- 通知全体の送信に成功した場合は、計画と通知に含めたPR操作の配信を記録
- 送信に失敗して配信を記録できなかった計画やPR操作は、次回も再送の対象
- ほかの通知が失敗しても、Slackの修正計画をすべて投稿できた場合は、その表示内容の配信を記録
- 配信記録の保存に失敗した場合は、送信済みの内容を再送する場合がある
通知を再送しても、成功済みのPR作成を繰り返すことはありません。 保存内容は保存ファイル、PRの確認は既存PRとの照合を参照してください。