Skip to content

Commit d5df527

Browse files
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) pip(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) <noreply@anthropic.com>
1 parent 4f6c187 commit d5df527

3 files changed

Lines changed: 72 additions & 5 deletions

File tree

‎.github/dependabot.yml‎

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Dependency updates for every ecosystem this repository ships.
2+
#
3+
# Each ecosystem is ONE catch-all group covering minor, patch and major, with
4+
# open-pull-requests-limit 1, so a week yields at most one pull request per
5+
# ecosystem instead of one per dependency. Dependabot cannot group across
6+
# ecosystems, so the number of entries below is the floor on weekly PRs.
7+
#
8+
# The github-actions entry exists because every action is pinned by commit SHA;
9+
# nothing else would ever move those pins.
10+
version: 2
11+
12+
updates:
13+
- package-ecosystem: gomod
14+
directory: /
15+
schedule:
16+
interval: weekly
17+
open-pull-requests-limit: 1
18+
groups:
19+
gomod:
20+
patterns:
21+
- "*"
22+
update-types:
23+
- minor
24+
- patch
25+
- major
26+
27+
- package-ecosystem: pip
28+
directory: /base/code
29+
schedule:
30+
interval: weekly
31+
open-pull-requests-limit: 1
32+
groups:
33+
pip:
34+
patterns:
35+
- "*"
36+
update-types:
37+
- minor
38+
- patch
39+
- major
40+
41+
- package-ecosystem: docker
42+
directory: /templates/builder
43+
schedule:
44+
interval: weekly
45+
open-pull-requests-limit: 1
46+
groups:
47+
docker:
48+
patterns:
49+
- "*"
50+
update-types:
51+
- minor
52+
- patch
53+
- major
54+
55+
- package-ecosystem: github-actions
56+
directory: /
57+
schedule:
58+
interval: weekly
59+
open-pull-requests-limit: 1
60+
groups:
61+
github-actions:
62+
patterns:
63+
- "*"
64+
update-types:
65+
- minor
66+
- patch
67+
- major

‎.github/workflows/ci.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ jobs:
2828
race:
2929
runs-on: ubuntu-latest
3030
steps:
31-
- uses: actions/checkout@v4
32-
- uses: actions/setup-go@v5
31+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
32+
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5
3333
with:
3434
go-version-file: go.mod
3535
# Same reason as the shared workflow: setup-go's cache tar corrupts

‎.github/workflows/releaser.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ jobs:
99
test:
1010
runs-on: ubuntu-latest
1111
steps:
12-
- uses: actions/checkout@v4
13-
- uses: actions/setup-go@v5
12+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
13+
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5
1414
with:
1515
go-version-file: go.mod
1616
# go.mod pins a `toolchain` newer than the `go` line, so setup-go
@@ -29,7 +29,7 @@ jobs:
2929
needs: test
3030
runs-on: ubuntu-latest
3131
steps:
32-
- uses: actions/checkout@v4
32+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
3333
with:
3434
fetch-depth: 0
3535
# ARCHITECTURE: the shared core release workflow runs goreleaser-action

0 commit comments

Comments
 (0)