コンテンツにスキップ

通知の送信条件

スキャン通知の送信条件

スキャン通知は、通知モードと、その回の検出結果・差分に応じて送信します。 通知モードや通知先の設定値は設定を参照してください。

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との照合を参照してください。