Skip to content

Replace Dependabot gomod with govulncheck and test-against-latest#2976

Draft
michaeldwan wants to merge 2 commits intomainfrom
md/govulncheck
Draft

Replace Dependabot gomod with govulncheck and test-against-latest#2976
michaeldwan wants to merge 2 commits intomainfrom
md/govulncheck

Conversation

@michaeldwan
Copy link
Copy Markdown
Member

Dependabot's Go dependency PRs are high-noise, low-signal. Most bumps are transitive deps with CVEs we don't even call, and every PR fights the merge queue over go.sum conflicts. See https://words.filippo.io/dependabot for the argument.

Two new scheduled workflows replace it:

  • govulncheck (daily + push/PR) -- symbol-level vulnerability scanning. Only fires when our code actually calls a vulnerable function, not just because a transitive dep has a CVE.
  • go-latest-deps (daily, informational) -- runs the test suite after go get -u -t ./.... Catches upstream breakage early without forcing us to merge anything. Failures don't gate PRs.

Go deps get updated on our schedule now, not each dependency's. The pip, cargo, and github-actions Dependabot entries are untouched.

@ask-bonk
Copy link
Copy Markdown
Contributor

ask-bonk Bot commented Apr 28, 2026

I'm Bonk, and I've done a quick review of your PR.

Summary: Replaces Dependabot Go updates with symbol-level vulnerability scanning (govulncheck) and daily tests against latest dependencies.

Issue:

In .github/workflows/govulncheck.yaml, using go-version-file: go.mod with go run golang.org/x/vuln/cmd/govulncheck@latest works, but there's a subtle issue: go run at latest may require a newer Go toolchain than specified in go.mod. If the Go version in go.mod lags behind what govulncheck requires, this will fail.

    runs-on: ubuntu-latest
    timeout-minutes: 10
    steps:
      - uses: actions/checkout@v6
        with:
          persist-credentials: false
      - uses: actions/setup-go@v6
        with:
          go-version: stable
      - name: Run govulncheck
        run: go run golang.org/x/vuln/cmd/govulncheck@latest ./...

This matches the pattern in go-latest-deps.yaml and ensures you always have a recent Go toolchain capable of running the latest govulncheck.

github run

@ask-bonk
Copy link
Copy Markdown
Contributor

ask-bonk Bot commented Apr 29, 2026

LGTM

github run

Dependabot's Go dependency PRs are high-noise, low-signal -- most
bumps are transitive deps with CVEs we don't even call, and every PR
fights the merge queue over go.sum conflicts.

Replace with two scheduled workflows:
- govulncheck: symbol-level vuln scanning (daily + on push/PR)
- go-latest-deps: test suite against latest deps (daily, informational)

Go deps get updated on our schedule now, not each dependency's.
No upstream fix exists for the docker/docker vulns it found, so
gating PRs just blocks the merge queue over something we can't
act on. Daily scheduled run is the right cadence -- matches the
article's intent.
@ask-bonk
Copy link
Copy Markdown
Contributor

ask-bonk Bot commented Apr 30, 2026

I'm Bonk, and I've done a quick review of your PR.

Summary: Replaces Dependabot Go updates with symbol-level vulnerability scanning (govulncheck) and daily tests against latest dependencies.

Issue:

In .github/workflows/govulncheck.yaml, using go-version-file: go.mod with go run golang.org/x/vuln/cmd/govulncheck@latest works, but there's a subtle issue: go run at latest may require a newer Go toolchain than specified in go.mod. If the Go version in go.mod lags behind what govulncheck requires, this will fail.

    runs-on: ubuntu-latest
    timeout-minutes: 10
    steps:
      - uses: actions/checkout@v6
        with:
          persist-credentials: false
      - uses: actions/setup-go@v6
        with:
          go-version: stable
      - name: Run govulncheck
        run: go run golang.org/x/vuln/cmd/govulncheck@latest ./...

This matches the pattern in go-latest-deps.yaml and ensures you always have a recent Go toolchain capable of running the latest govulncheck.

github run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant