From 6885c04110a92bc3e6581808a8cca3c02f42b553 Mon Sep 17 00:00:00 2001 From: Antoine Toussaint Date: Fri, 11 Sep 2026 07:28:03 -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: gomod(1) docker(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 (5 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 | 53 +++++++++++++++++++++++++++++++++++ .github/workflows/ci.yml | 4 +-- .github/workflows/release.yml | 6 ++-- 3 files changed, 58 insertions(+), 5 deletions(-) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..2be0659 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,53 @@ +# 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: gomod + directory: / + schedule: + interval: weekly + open-pull-requests-limit: 1 + groups: + gomod: + patterns: + - "*" + update-types: + - minor + - patch + - major + + - package-ecosystem: docker + directory: /templates/builder + schedule: + interval: weekly + open-pull-requests-limit: 1 + groups: + docker: + 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 09983d1..56575b1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,8 +11,8 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5 with: go-version-file: 'go.mod' - name: Build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 00df5ab..0f13ee9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,8 +9,8 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5 with: go-version-file: go.mod - run: go test -v ./... @@ -19,7 +19,7 @@ jobs: needs: test runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 with: fetch-depth: 0 # ARCHITECTURE: Core's tree-sitter projection requires CGO in every