Skip to content

Dependabot covers gomod but not github-actions #53

Description

@korya

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions