From dfb5e76a0a956e2f9c4f98c30a9dea10a1d7bf93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pasternak?= Date: Mon, 27 Apr 2026 08:39:34 +0200 Subject: [PATCH] ci(dependabot): dodaj cooldown 3d/7d dla wszystkich ekosystemow Praktyka #2 z lirantal/pypi-security-best-practices (Install with Cooldown). Dependabot do tej pory otwieral PR-y natychmiast po publikacji nowej wersji. W praktyce kazdy compromise typu supply-chain trafial do nas w pierwszych godzinach zycia zlosliwego pakietu - zanim community / PyPI quarantine zdolaly zareagowac (LiteLLM: 2.5h, 119k pobran zanim Trigger PyPI quarantine). Po tej zmianie: - 3 dni cooldown dla minor/patch (default) - 7 dni cooldown dla major (wieksze ryzyko regression + wiecej oczu) - security/CVE updates automatically bypass cooldown (Dependabot built-in) Wszystkie 3 ekosystemy: uv (Python), github-actions, docker base images. --- .github/dependabot.yml | 21 +++++++++++++++++++ .../+dependabot-cooldown.feature.rst | 1 + 2 files changed, 22 insertions(+) create mode 100644 src/bpp/newsfragments/+dependabot-cooldown.feature.rst diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 6df744fd7..0874ac9f7 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -12,6 +12,12 @@ updates: commit-message: prefix: "ci" include: "scope" + # Cooldown: GitHub Actions tag-promotion attacks (np. malicious tag + # nadpisany na popularnej akcji) sa wykrywane szybko - daj 3 dni + # community na zauwazenie problemu zanim wystawimy PR. + cooldown: + default-days: 3 + semver-major-days: 7 - package-ecosystem: "uv" directory: "/" @@ -25,6 +31,16 @@ updates: commit-message: prefix: "deps" include: "scope" + # Cooldown: czekaj az pakiet "ostygnie" przed otwarciem PR-a. + # Chroni przed atakami typu LiteLLM (atak trwal 2.5h zanim PyPI + # quarantine zadzialalo - 119k pobran zlosliwego pakietu). Dependabot + # automatycznie omija cooldown dla aktualizacji security (CVE). + # Praktyka #2 z lirantal/pypi-security-best-practices. + cooldown: + default-days: 3 + semver-major-days: 7 + semver-minor-days: 3 + semver-patch-days: 3 groups: python-minor-and-patch: update-types: @@ -50,6 +66,11 @@ updates: commit-message: prefix: "docker" include: "scope" + # Cooldown: 3 dni na bazowe obrazy. Tag promotion attacks na obrazach + # bazowych (np. python:3.13-slim) sa rzadkie ale mozliwe. + cooldown: + default-days: 3 + semver-major-days: 7 groups: docker-base-images: patterns: diff --git a/src/bpp/newsfragments/+dependabot-cooldown.feature.rst b/src/bpp/newsfragments/+dependabot-cooldown.feature.rst new file mode 100644 index 000000000..4c9ceda2a --- /dev/null +++ b/src/bpp/newsfragments/+dependabot-cooldown.feature.rst @@ -0,0 +1 @@ +Dodano ``cooldown`` do ``.github/dependabot.yml`` dla wszystkich trzech ekosystemów (Python/uv, GitHub Actions, Docker). Aktualizacje czekają 3 dni (major: 7) zanim Dependabot otworzy PR — chroni przed wciąganiem swieżo skompromitowanych wersji (np. atak typu LiteLLM 2.5h przed quarantine). Aktualizacje security (CVE) automatycznie omijają cooldown.