Add Dependabot config (Gradle + Docker) with grouping and verification-metadata automation#356
Add Dependabot config (Gradle + Docker) with grouping and verification-metadata automation#356jonbartels wants to merge 5 commits into
Conversation
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Jon Bartels <jonathan.bartels@gmail.com>
mgaffigan
left a comment
There was a problem hiding this comment.
Can we get the dockerfile included, too?
Also: add minimum package age to limit supplychain attacks. 2d would be my suggested minimum age.
There was a problem hiding this comment.
Pull request overview
Adds a Dependabot configuration to enable automated dependency update PRs for this repository’s Gradle multi-module build on a weekly cadence.
Changes:
- Introduces
.github/dependabot.ymlusing Dependabot config schemaversion: 2. - Configures weekly checks for the
gradleecosystem at the repository root (/).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Jon Bartels <jonathan.bartels@gmail.com>
Scan Dockerfile in addition to Gradle, require a 2-day minimum age (cooldown) before opening PRs, and group updates by coherent project family to reduce PR noise. Groups are keyed deep enough to keep unrelated org.apache.* projects (commons, log4j, ...) separate. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Jon Bartels <jonathan.bartels@gmail.com>
|
If I understand the github changelog entry correctly 3 days is already the default: https://github.blog/changelog/2026-07-14-dependabot-version-updates-introduce-default-package-cooldown/ |
Signed-off-by: Jon Bartels <jonathan.bartels@gmail.com>
cf9bc66 to
116e5d5
Compare
|
One problem nobody has raised: every Gradle PR this config generates will fail CI. This repo enforces dependency verification ( The build fails at the first task that resolves the bumped artifact, so most or all of the test suite never runs. The fix per PR is the cold-cache regeneration step in CONTRIBUTING.md. Not a blocker for merging, but two things come with it:
Three minor items, none blocking:
|
Dependabot cannot update gradle/verification-metadata.xml (dependabot-core#1996), so its Gradle bumps fail CI on stale checksums. Add a workflow that, on dependabot/gradle/** branches, regenerates the metadata with a cold cache, validates the build, and commits the refreshed file back to the PR. Also clarify the all-minor-and-patch group comment: majors within a named group are not split into individual PRs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Jon Bartels <jonathan.bartels@gmail.com>
|
I am closing this PR. Instead I am pursuing Renvoate under #358 . Renovate seems to require fewer permissions and workarounds than dependabot (it updates the gradle metadata automatically). |
Summary
Adds Dependabot dependency updates for this project, plus a workflow to keep them compatible with the repo's Gradle dependency verification.
.github/dependabot.yml— config schemaversion: 2gradle(root/, covers the multi-module build via the centralgradle/libs.versions.tomlcatalog) anddocker(the rootDockerfile)monthlyfor bothorg.apache.*is deliberately split (org.apache.commons,org.apache.logging.log4j, …) because it spans unrelated projects (Derby, PDFBox, Velocity, HttpComponents). Groups:aws-sdk,jetty,jersey,jackson,netty,log4j,apache-commons,test-tooling, and a catch-allall-minor-and-patchopen-pull-requests-limit(10 gradle / 5 docker),labels,commit-messageprefixes.github/workflows/dependabot-verification-metadata.yaml— Dependabot cannot updategradle/verification-metadata.xml(dependabot-core#1996), so its Gradle bumps would fail CI on stale checksums. Ondependabot/gradle/**branches this workflow regenerates the metadata with a cold cache (perCONTRIBUTING.md), validates the build in the same run, and commits the refreshed file back to the PR.These cannot be done from the PR and are needed for the config to behave as described:
GITHUB_TOKENdoes not re-triggerbuild.yaml, so the regen workflow is the authoritative green check for Gradle bumps (it runs the full build itself). If you'd rather havebuild.yamlre-run, swap the workflow's push to use a PAT/App token instead ofGITHUB_TOKEN.Notes / follow-ups
server/build.gradlepinsnetty-transport-native-epollinline with alinux-x86_64classifier (the catalog can't express it), so a groupednettybump won't touch that line — watch for drift on the first netty PR.github-actionsecosystem entry would be a reasonable follow-up to keep workflow action versions current.🤖 Generated with Claude Code