Skip to content

ci: add Dependabot gomod coverage for both Go modules - #208

Merged
pdettori merged 1 commit into
rossoctl:mainfrom
pdettori:ci/dependabot-gomod-coverage
Sep 2, 2026
Merged

ci: add Dependabot gomod coverage for both Go modules#208
pdettori merged 1 commit into
rossoctl:mainfrom
pdettori:ci/dependabot-gomod-coverage

Conversation

@pdettori

@pdettori pdettori commented Sep 2, 2026

Copy link
Copy Markdown
Member

Summary

Adds gomod to .github/dependabot.yml for the repo's two Go modules, gen/go
and remote-worker. They were the only dependency surface Dependabot did not
watch — the existing entries cover github-actions, npm and docker only.

Why now

Because that gap has already cost us the same outage twice, and both times a
human had to notice a red gate and hand-bump the dependency:

Advisory Dependency Fixed by hand in
GHSA-hrxh-6v49-42gf google.golang.org/grpc 1.82.0 → 1.82.1 #163
CVE-2026-84304 google.golang.org/grpc 1.82.1 → 1.83.1 #203

CVE-2026-84304 (gRPC-Go heap exhaustion via HTTP/2 DATA frame fragmentation)
published 2026-09-01T18:19Z and entered Trivy's DB overnight. The next morning
trivy-scan began failing on PRs that had nothing to do with Go — the failure
is also near-invisible, because the job runs with format: sarif, so stdout
shows exit code 1 with no findings table and code-scanning/alerts?tool_name=Trivy
returns []. Diagnosing it means scanning the base and head trees by hand.

A gomod ecosystem turns that into an ordinary dependency PR that arrives
before the advisory reaches the scanner DB.

Notes on the config

  • One entry per module. Dependabot has no recursive directory match, so
    /gen/go and /remote-worker each need their own block.
  • grpc / protobuf / genproto are grouped per module, following the same
    reasoning as the existing codeql-action group: they are generated-code peers,
    and bumping one without the others can break the buf-generated bindings.

Verification

Schedule is weekly, matching every other ecosystem here. This only changes what
Dependabot watches; no application code or CI behavior is affected.

Assisted-By: Claude Code

The github-actions, npm and docker ecosystems left the repo's two Go modules
(gen/go, remote-worker) unwatched, so Go advisories reached us only as a red
trivy-scan gate rather than as a PR.

That is exactly how CVE-2026-84304 (google.golang.org/grpc heap exhaustion via
HTTP/2 DATA frame fragmentation) landed: it published on 2026-09-01, entered
Trivy's DB overnight, and turned the gate red on unrelated PRs until it was
bumped by hand in rossoctl#203. The same shape recurred a week earlier with
GHSA-hrxh-6v49-42gf, fixed by hand in rossoctl#163 -- grpc is a repeat offender.

Dependabot has no recursive directory match, so each go.mod needs its own
entry. grpc, protobuf and genproto are grouped per module because they are
generated-code peers: bumping one without the others can break the
buf-generated bindings.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: Paolo Dettori <dettori@us.ibm.com>
@pdettori
pdettori merged commit b1af7bb into rossoctl:main Sep 2, 2026
12 checks passed
@pdettori
pdettori deleted the ci/dependabot-gomod-coverage branch September 2, 2026 17:03
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