Problem
.github/dependabot.yml watches Go modules and nothing else:
updates:
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
The workflow's own actions are unmanaged, so they age silently:
| Action |
Pinned at |
actions/checkout |
v4 |
actions/setup-go |
v5 |
extractions/setup-just |
v3 |
golangci/golangci-lint-action |
v8 |
Why it matters
- Silent staleness. Major-version tags stop receiving fixes once the next major ships, and nothing in the repo signals it. The Go dependencies get weekly attention while the pipeline that validates them does not.
- Deprecation lands as a broken build. GitHub retires runtimes (the Node 16 → 20 transition being the recent example) by warning first and failing later. Without dependabot the first signal is a red CI run on an unrelated PR.
- Security advisories are missed. Actions execute with repo-write-capable tokens; an advisory against one is exactly what dependabot exists to surface.
- Uneven with existing practice. The commit log shows dependabot Go bumps being merged routinely, so the mechanism is trusted here — it's just pointed at half the surface.
Suggested fix
version: 2
updates:
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
Note directory: "/" is correct for the actions ecosystem even though the files live in .github/workflows/ — dependabot resolves that path itself.
Also worth pinning (separate concern, same theme)
Two tools are installed unpinned and are therefore not covered by dependabot at all, because they aren't declared as dependencies anywhere:
- uses: golangci/golangci-lint-action@v8
with:
version: latest # build.yml
- run: go install github.com/securego/gosec/v2/cmd/gosec@latest
lint: golangci-lint run ./... # Justfile
security: gosec ./...
This already caused a live breakage: gosec 2.28.0 introduced rule G704 and turned just pre-commit red on an unchanged tree (fixed in #49). Pinning both to explicit versions — in the workflow and in the Justfile, so local and CI agree — converts "CI broke overnight" into a reviewable dependabot PR.
Related
Problem
.github/dependabot.ymlwatches Go modules and nothing else:The workflow's own actions are unmanaged, so they age silently:
actions/checkoutv4actions/setup-gov5extractions/setup-justv3golangci/golangci-lint-actionv8Why it matters
Suggested fix
Note
directory: "/"is correct for the actions ecosystem even though the files live in.github/workflows/— dependabot resolves that path itself.Also worth pinning (separate concern, same theme)
Two tools are installed unpinned and are therefore not covered by dependabot at all, because they aren't declared as dependencies anywhere:
This already caused a live breakage: gosec 2.28.0 introduced rule G704 and turned
just pre-commitred on an unchanged tree (fixed in #49). Pinning both to explicit versions — in the workflow and in theJustfile, so local and CI agree — converts "CI broke overnight" into a reviewable dependabot PR.Related