From 90bf3e6b1623378a8599e5f886d6dd53e33b15a4 Mon Sep 17 00:00:00 2001 From: Antoine Toussaint Date: Fri, 11 Sep 2026 07:27:21 -0400 Subject: [PATCH] chore: group dependency updates and pin every action by SHA Dependabot was opening one pull request per dependency, which across this organization produced swarms of dozens at a time. .github/dependabot.yml now gives each ecosystem present in this repository a single catch-all group over minor, patch and major with open-pull-requests-limit 1, so a week yields at most one pull request per ecosystem. Ecosystems configured: pip(1) github-actions(1) Every third-party action is now pinned to a 40-character commit SHA with its original tag kept as a trailing comment (2 rewritten). A mutable tag like `@v4` is repointable by whoever controls the action, so an unpinned workflow runs whatever that tag means on the day CI happens to fire; a SHA is immutable. The github-actions entry in dependabot.yml is what keeps those pins moving, since nothing else would. Co-Authored-By: Claude Opus 5 (1M context) --- .github/dependabot.yml | 39 +++++++++++++++++++++++++++++++++++++++ .github/workflows/ci.yml | 4 ++-- 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..c4528d0 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,39 @@ +# Dependency updates for every ecosystem this repository ships. +# +# Each ecosystem is ONE catch-all group covering minor, patch and major, with +# open-pull-requests-limit 1, so a week yields at most one pull request per +# ecosystem instead of one per dependency. Dependabot cannot group across +# ecosystems, so the number of entries below is the floor on weekly PRs. +# +# The github-actions entry exists because every action is pinned by commit SHA; +# nothing else would ever move those pins. +version: 2 + +updates: + - package-ecosystem: pip + directory: / + schedule: + interval: weekly + open-pull-requests-limit: 1 + groups: + pip: + patterns: + - "*" + update-types: + - minor + - patch + - major + + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + open-pull-requests-limit: 1 + groups: + github-actions: + patterns: + - "*" + update-types: + - minor + - patch + - major diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dd5874d..e1c9f88 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,8 +12,8 @@ jobs: matrix: python-version: ["3.10", "3.12"] steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 with: python-version: ${{ matrix.python-version }} - run: python -m pip install --upgrade pip