From 77017a0b5927d19a8a340850bbe86ec0a41e13d7 Mon Sep 17 00:00:00 2001 From: ai_approver Date: Sun, 3 May 2026 12:32:36 +0000 Subject: [PATCH] fix: send Mattermost report before mirroring to avoid long delays --- check_versions.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/check_versions.py b/check_versions.py index 477b39c..dad96b2 100644 --- a/check_versions.py +++ b/check_versions.py @@ -354,7 +354,6 @@ def main() -> None: logger.info("Found %d unique image references", len(all_images)) results = [] - mirrored = [] for ref, img in all_images.items(): entry = { @@ -385,18 +384,10 @@ def main() -> None: except InvalidVersion: entry["status"] = "current" if img.tag == latest else "outdated" - if do_mirror and entry["status"] == "outdated" and entry["latest"]: - new_ref = ref.rsplit(":", 1)[0] + ":" + entry["latest"] - if mirror_to_local(new_ref, local_registry): - mirrored.append(new_ref) - results.append(entry) + # Send report immediately after version checks, before mirroring report = build_report(results) - - if mirrored: - report += f"\n\n*Mirrored {len(mirrored)} updated images to `{local_registry}`*" - logger.info("Sending Mattermost notification …") send_mattermost(report, webhook_url) logger.info("Done. %d outdated, %d floating, %d current, %d skipped", @@ -405,6 +396,18 @@ def main() -> None: sum(1 for r in results if r["status"] == "current"), sum(1 for r in results if r["status"] == "skipped")) + # Mirror outdated images after report is sent + if do_mirror: + mirrored = [] + for entry in results: + if entry["status"] == "outdated" and entry["latest"]: + ref = entry["image"] + new_ref = ref.rsplit(":", 1)[0] + ":" + entry["latest"] + if mirror_to_local(new_ref, local_registry): + mirrored.append(new_ref) + if mirrored: + logger.info("Mirrored %d updated images to %s", len(mirrored), local_registry) + if __name__ == "__main__": main()